我正在尝试使用 ggplot2 创建一个条形图,并将所描绘的值写入条形图内。我仍然想用值“0”来标记该组,但使用不同的颜色(黑色)并且位于 x 轴上方。如何更改这一个 geom_text 的位置和颜色?
我已经尝试将向量输入到scale_colour_manual中,但它不起作用(或者我没有做对)。
data <- read.table(text = "group percentage
group1 30
group2 29
group3 0
group4 18", header=TRUE)
library(ggplot2)
ggplot(data, aes(x=group, y=percentage))+
theme_bw()+
geom_bar(stat = 'identity', position = "dodge", fill="#13449f")+
geom_text(aes(label = percentage), position = position_dodge(0.9),
vjust=1.3, colour = "white", size=6)
使用此代码,group3 没有标签,因为也没有栏。我希望在 x 轴上方仍然有一个黑色标签。
通过条件逻辑:
library(ggplot2)
ggplot(data, aes(x = group, y = percentage))+
theme_bw()+
geom_bar(stat = 'identity', position = "dodge", fill = "#13449f") +
geom_text(aes(label = percentage), position = position_dodge(0.9),
vjust = ifelse(data$percentage > 3, 1.3, -0.3),
colour = ifelse(data$percentage > 3, "white", "black"),
size = 6)
With
group3 == 3.1
这种方法的优点是:
- 它会自动处理大小的值
- 您不需要第二个数据框或几何图形
这种方法的警告:
- 什么是硬编码为
> 3
应针对每个可视化进行校准。它是可能的如果您更深入地了解 ggplot2 如何构建图表,则可以使该部分自动化,但对于这个小例子来说,这有点过分了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)