[英]ggplot: geom_text over geom_bar
我有以下数据框:
foo = read.table(text="
protein1 1.51E-02 5 label1
protein2 9.06E-05 850 label2
protein3 3.38E-05 1155 label1
protein4 3.38E-05 1154 label1
protein5 6.64E-03 35 label3
protein6 5.32E-03 44 label4",
sep="\t", col.names=c("category", "value", "rank", "ToLabel"))
我想制作一个rank
(x 轴)与value
(y 轴)的条形图,并添加一个存储在ToLabel
列中的标签。
这是我的绘图代码:
ggplot(data=foo, aes(x=rank, y=value)) +
geom_bar(stat="identity") +
geom_col(fill="dark grey") +
labs(x = "Rank",
y = "Value") +
theme_bw() +
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank()) +
scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0)) +
scale_fill_manual( values = c( "yes"="red", "no"="black" ), guide = "none" ) +
geom_pointrange(data = foo, aes(x=rank, y=value, ymin = 0, ymax = 0)) +
#geom_text(data = genes_df, aes(x=rank, y=relative_iBAQ, label = ToText), vjust = 0, angle=45, size = 1)
geom_text(data = foo, aes(label = ToLabel),
position = position_stack(vjust = 1.1), angle=45, size = 3)
到目前为止,我还没有找到移动它们的方法。 知道如何更好地定位标签吗?
您可以使用nudge_x
和nudge_y
参数来调整文本,但您必须停止使用position
才能工作。 有关详细信息,请参阅?geom_text
帮助页面。
我还建议不要对 x 轴使用expand(0, 0)
,这样标签可以去的地方有一些填充。
您可以使用hjust
控制文本的对齐方式。 默认的hjust = 0.5
使文本以其坐标为中心。 设置hjust = 0
left 使文本在其坐标处对齐。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.