如何在R中的ggplot2中添加自定义条形标签

时间:2019-09-18 00:34:37

标签: r ggplot2 geom-text

我是R的新用户,我正在尝试使用ggplot2将自定义标签添加到我的条形图中。这些标签不是我的数据集的一部分,我使用stat =“ summary”而不是“ identity”,所以我对如何正确实现geom_text感到困惑。

每个条表示不同的处理(处理1,处理2等)。我希望条1标记为“ ab”,条2标记为“ ac”,条3标记为“ c”,条4标记为“ a”,条5标记为“ bc”。我有一个名为“摘要”的列表,该列表在“ sig_labels”列中包含这些标签。然后,我尝试使用geom_text应用标签,但没有成功。

非常感谢您的帮助!

我的数据集如下:

Treatment       Speed
 1  Treatment 1      3
 2  Treatment 1      4
 3  Treatment 1      3.4
 4  Treatment 1      3.3
 5  Treatment 2      2
 6  Treatment 2      3.3
 7  Treatment 2      2.8
 8  Treatment 2      3.1
 9  Treatment 3      4.4
 10 Treatment 3      4.3
 11 Treatment 3      5
 12 Treatment 3      3.9
 13 Treatment 4      4.2
 14 Treatment 4      2.2
 15 Treatment 4      2.1
 16 Treatment 4      2.1
 17 Treatment 5      3.0
 18 Treatment 5      3.2
 19 Treatment 5      3.3
 20 Treatment 5      3.4

我的摘要列表如下:

Treatment        sig_labels
 1   Treatment 1       ab
 2   Treatment 2       ac
 3   Treatment 3       c
 4   Treatment 4       a
 5   Treatment 5       bc

我的代码如下:

dataset %>%
  ggplot(aes(x= Treatment, y= Speed)) +
  geom_bar(stat="summary", fun.y= "mean", fill="#FAA756", width= 0.5, colour="black", 
           size = 0.3) +
  ggtitle("Speed") +
  xlab("Treatment") + 
  ylab("Speed") +
  stat_summary(fun.data= mean_se, geom = "errorbar", width = .2, size = 0.3) +
  theme(
    plot.title = element_text(hjust = 0.5), 
    axis.text.x = element_text(color="black"),
    axis.text.y = element_text(color="black"),
    text = element_text(family = "Calibri"),
   # Remove panel border
    panel.border = element_blank(),
    # Remove panel grid lines
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    # Remove panel background
    panel.background = element_blank(),
    # Add axis line
    axis.line = element_line(colour = "black"),
  ) +
  scale_y_continuous(expand = c(0,0),
                     limits = c(0,5.5))

+   geom_text(data = summary,aes(label = sig_labels,vjust = -0.2))

0 个答案:

没有答案