r - 并排分组条形图

标签 r

我正在尝试使用带有 ggplot2 的分组条形图来绘制下表。

我如何以一种方式绘制它,以便根据每一天并排绘制计划的审计和 noofemails?

       Email Type Sent Month Sent Day Scheduled Audits Noofemails
27          A          1       30                7        581
29          A          1       31                0          9
1           A          2        1                2          8
26          B          1       29             1048      25312
28          B          1       30               23        170
30          B          1       31               18        109
2           B          2        1                6         93
3           B          2        2                9         86
4           B          2        4                3         21

ggplot(joined, aes(x=`Sent Day`, y=`Scheduled Audits`, fill = Noofemails )) + 
  geom_bar(stat="identity", position = position_dodge()) +
  scale_x_continuous(breaks = c(1:29)) + 
  ggtitle("Number of emails sent in February") + 
  theme_classic()

enter image description here 没有实现我希望看到的剧情。

最佳答案

使用这种数据格式,所以稍微新的列名,不再有反引号。 read_table(text = "") 是在 Stack 上共享小数据集的好方法

joined <- read.table(text =
   "ID  Email_Type Sent_Month Sent_Day Scheduled_Audits Noofemails
    27          A          1       30                7        581
    29          A          1       31                0          9
    1           A          2        1                2          8
    26          B          1       29             1048      25312
    28          B          1       30               23        170
    30          B          1       31               18        109
    2           B          2        1                6         93
    3           B          2        2                9         86
    4           B          2        4                3         21",
    header = TRUE)

这就是为什么ggplot2非常喜欢长数据而不喜欢宽数据的原因。因为它需要列名来创造美感。

因此,您可以使用函数 tidyr::gather() 将感兴趣的两列重新排列为一列带有标签,一列带有值。这会增加数据框中的行数,这就是它被称为 long 的原因。

long <- tidyr::gather(joined,"key", "value", Scheduled_Audits, Noofemails)

ggplot(long, aes(Sent_Day, value, fill = key)) +
    geom_col(position = "dodge")

enter image description here

关于r - 并排分组条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51984868/

相关文章:

r - purrr::map_if:仅将函数应用于特定列

R:检测 "main"路径并使用内核删除或过滤GPS轨迹?

r - 如何用多个变量和个体的 IQR 内的值替换异常值

r - ets:ets(时间序列,模型 = "MAM")中的错误:非季节性数据

r - 在 R 中安装 devtools 的问题

r - 如果case_when找到特定结果,则停止执行

r - 如何使用 R 进行转化漏斗分析?

r - 生成包数据的 R 文件放在哪里

r - 强制评估 data.table 中的 .SD

r - 编辑 emmeans 箭头图的侧面文本