首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >总计和特定类别的ggplot条形图

总计和特定类别的ggplot条形图
EN

Stack Overflow用户
提问于 2020-11-19 09:58:32
回答 1查看 34关注 0票数 0

在ggplot中是否可以使用以下数据:

代码语言:javascript
复制
months <-rep(c("jan", "feb", "mar", "apr", "may", "jun", 
               "jul", "aug", "sep", "oct", "nov", "dec"), 2)
chickens <-c(1, 2, 3, 3, 3, 4, 5, 4, 3, 4, 2, 2)
eggs <-c(0, 8, 10, 13, 16, 20, 25, 20, 18, 16, 10, 8)
values <-c(chickens, eggs)
type <-c(rep("chickens", 12), rep("eggs", 12))
mydata <-data.frame(months, values, type)

然后..。

代码语言:javascript
复制
mydata$months <-factor(mydata$months, 
                      levels = c("jan", "feb", "mar", "apr", "may", "jun",
                                 "jul", "aug", "sep", "oct", "nov", "dec"))

所以我可以像这样画出

代码语言:javascript
复制
p <-ggplot(mydata, aes(months, values))
p +geom_bar(stat = "identity", aes(fill = type), position = "dodge")

但是,我不想创建鸡和蛋的关系图,而是想创建一个图,它显示了Total的值和鸡的值,所以基本上你会有一个列来表示总数,一个列比较鸡的百分比

类似这样的东西,但只针对total &鸡,所以我可以有另一个比较total和鸡蛋的图。

EN

回答 1

Stack Overflow用户

发布于 2020-11-19 10:34:53

您可以首先创建要打印的数据。

代码语言:javascript
复制
library(dplyr)
library(ggplot2)

mydata %>%
  filter(type == 'chickens') %>%
  bind_rows(mydata %>%
  group_by(months) %>%
  summarise(values = sum(values), 
            type = 'total')) -> data

然后,您可以使用

代码语言:javascript
复制
ggplot(data) + aes(months, values, fill = type) + 
    geom_bar(stat = "identity", position = "dodge")

或堆叠图

代码语言:javascript
复制
ggplot(data) + aes(months, values, fill = type) + geom_bar(stat = 'identity')

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64904265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档