r - ggplot2中分组条形图中的变量总和
问题描述
我找不到以下问题的答案/解决方案:
我有一个数字变量,一个巢中的小鸡数量。我想在给定年份的每个月的分组条形图中绘制该变量的总和。
所以y轴是小鸡的数量,x轴是年份,月份是填充。
示例数据框:
df <- data.frame(matrix(ncol = 3, nrow = 8))
x <- c("year", "month","chicks")
colnames(df) <- x
df$year <- c(2010,2011,2012,2012,2012,2013,2013,2014)
df$month <- c(6,6,6,7,7,7,7,7)
df$chicks <- c(2,3,3,1,2,2,1,2)
这就是我希望结果的样子。它不是
我相信我错过了如何计算给定年份每个月的小鸡数量。
解决方案
我不确定您的(真实)数据的其余部分如何,但此代码通常可以工作:
df %>%
ggplot(aes(x = year, y = chicks, fill = as.factor(month))) +
geom_bar(stat = "identity", position = "dodge")
编辑:扩展您的数据时,我看到了您想要的
set.seed(42)
df <- data.frame(matrix(ncol = 3, nrow = 100))
x <- c("year", "month","chicks")
colnames(df) <- x
df$year <- sample(2010:2014, 100, replace = T)
df$month <- sample(6:7, 100, replace = T)
df$chicks <- sample(1:4, 100, replace = T)
所以我们首先需要找到每个月(每年)的小鸡总数,然后使用 ggplot 绘制它:
df %>%
group_by(year, month) %>%
summarise(summedChicks = sum(chicks)) %>%
ggplot(aes(x = year, y = summedChicks, fill = as.factor(month))) +
geom_bar(stat = "identity", position = "dodge")
推荐阅读
- c# - 在部分限制器/短语之间获取文本
- c# - C# 可以每天更改一次密码
- java - 在 JPQL 查询中设置可选参数
- ruby-on-rails - 无法启动我的 Rails 服务器 [linux]
- reactjs - 如何在 Rekit 功能之间共享状态?
- java - 当我将它写入文件时如何拆分我的arraylist
- scala - 在 spark Dataframe 中使用 arraytype
- python - 在不更改代码源的情况下重写 pywb 中的函数
- python - 尝试用创建的临时文件替换原始文件
- php - 如果 mcyrpt 不能在 php 7.2 中工作怎么办有什么解决方案或替代方法吗?