使用ggplot2在条形图上绘制两个变量

时间:2017-04-19 00:40:26

标签: r plot ggplot2

我是使用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)有人知道怎么做吗?谢谢!

1 个答案:

答案 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_dftidy_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")