首页 文章

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

提问于
浏览
0

我是新手使用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 回答

  • 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")
    

相关问题