我的DF看起来像这样:
Date H2 Value
2018-06-04 H2_Avg 0.08
2018-06-07 H2_Avg 0.11
2018-06-16 H2_Avg 0.12
2018-06-20 H2_Avg 0.13
2018-06-23 H2_Avg 0.24
2018-06-26 H2_Avg 0.16
2018-06-30 H2_Avg 0.24
2018-07-04 H2_Avg 0.38
2018-07-09 H2_Avg 0.44
2018-07-12 H2_Avg 0.34
2018-06-04 H2_disabled 0.07
2018-06-07 H2_disabled 0.09
2018-06-16 H2_disabled 0.10
2018-06-20 H2_disabled 0.14
2018-06-23 H2_disabled 0.23
2018-06-26 H2_disabled 0.18
2018-06-30 H2_disabled 0.22
2018-07-04 H2_disabled 0.33
2018-07-09 H2_disabled 0.27
2018-07-12 H2_disabled 0.24
我想用列中写入的值绘制一个躲避的条形图。 我要绘制的代码如下:
DF %>% ggplot() +
geom_col(aes(Date, Value, fill = H2), position = "dodge") +
geom_text(aes(Date, Value, label = Value),
position = position_dodge(width = 1),
vjust = 1.5)
这将输出以下内容:
如您所见,在两列之间的差异较小的情况下,geom_text
指定的值不清晰。
有办法改善吗?
翻转坐标,然后使用此处建议的position_dodge
参数:Position geom_text on dodged barplot对我的数据不起作用,因为两组之间的差异很小。
答案 0 :(得分:1)
尝试:
DF %>% ggplot(aes(Date, Value, fill = H2)) +
geom_col(position = "dodge") +
geom_text(aes(label = Value),
position = position_dodge(width=1),
vjust=1.5)
请注意,我通过在aes()
中包含ggplot()
来简化了代码。
答案 1 :(得分:0)
我终于找到了问题的原因。它与“日期”列的格式有关。我将其格式化为POSIXct日期格式。由于某种原因,这与我最初的问题中所述的position_dodge格式混淆。将日期重新格式化为普通字符解决了该问题,并给了我与@ alex_555解决方案相同的图。