我是使用ggplot2的新手,我无法绘制图表。我已经查看了SO,但我发现的解决方案与我的数据无关。 这是我的DF
的一个例子Count1 Count2 Color
3 4 Red
3 6 Green
5 2 Red
2 0 Blue
我想把它绘制成条形图。我希望X轴由颜色组成,我想在y轴上绘制Count1和Count2变量。例如,用于显示green
颜色的两个条形将上升到数字3(对于count1
)和数字6(对于count2
)。同样,red
栏最多可达8(count1
}和6(count2
)有人知道怎么做吗?谢谢!
答案 0 :(得分:2)
打破上面@alistaire的答案,这样你就可以关注正在发生的事情了
您的数据
color_df <- data.frame(Count1 = c(3,3,5,2), Count2 = c(4,6,2,0), Color = c("Red", "Green", "Red", "Blue"))
为每种颜色添加计数
library(dplyr)
sum_df <- color_df %>%
group_by(Color) %>%
summarise_all(sum)
sum_df
ggplot需要一列中的两个计数,另一列描述哪个是哪个。比较sum_df
和tidy_df
library(tidyr)
tidy_df <- sum_df %>%
gather(CountName, Count, -Color)
最后的情节。道奇并排放置它们。 geom_col
使用Count
变量的高度。 geom_bar
会计算观察次数。
library(ggplot2)
ggplot(tidy_df, aes(x = Color, fill = CountName, y = Count)) +
geom_col(position = "dodge")