我在这个网站上搜索了一个解决方案,但我一无所获。
问题在于:
我尝试使用geom_text和函数" y"来固定条形图中标签的位置。但即使我改变了" y"的值,位置也不会改变,它仍然位于条形图底线的中间位置。
所以我尝试使用" vjust",它可以工作,但是位置是根据与酒吧顶部的距离确定的,所以由于我的酒吧不具有相同的高度,所以标签不会#39; t具有相同的位置。我更愿意将它们对齐,并且功能" y"提供了。
这是我的数据示例:
Phoneme CoG
s 6112
s 5946
s 6545
s 6097
s 6245
s 5604
s 6189
s 6030
s 5386
s 6105
s' 5546
s' 6212
s' 5963
s' 5774
s' 6213
s' 6118
s' 5837
s' 5072
s' 4642
s' 4988
这是代码:
ggplot(data=donnees_M, aes(x=Phoneme, y=CoG, fill=Phoneme)) +
geom_bar(position=position_dodge(), colour="black", stat="identity") +
geom_errorbar(aes(ymin=CoG-ci, ymax=CoG+ci), width=.2,position=position_dodge(.9)) +
labs(x=NULL, y="Centre of Gravity") + theme(panel.background = element_rect(fill = "white")
, panel.grid.minor=element_line(color = "grey30"), panel.grid.major =element_line(color = "grey30")) +
scale_fill_manual(values=c("deepskyblue3","seagreen4")) +
geom_text(aes(y=5.5, label=format(donnees_M$CoG,digits=0)), size = 10) +
guides(fill=F) +
theme(axis.title.y = element_text(size = rel(2), angle = 90)) + ylim(0,6000) +
theme(axis.text.x = element_text(size = rel(3), color="black")) +
theme(axis.text.y = element_text(size = rel(2.8), color="black"))
这很奇怪,因为我过去已经使用过这个功能而且没有任何问题。除了我的数据之外,之前的脚本没有任何改变。
你对这个问题有什么看法吗?
告诉我你是否需要我的脚本和我的数据中的更多信息
先谢谢
答案 0 :(得分:1)
实际上y
值确实会改变位置,但是你在6000的范围内使用5.5 ..所以你看不到它。如果您尝试y=1000
,您会看到它
如果它是一个固定值,你不需要它,它可能在外面:
geom_text(aes(label=format(donnees_M$CoG,digits=0)), y=1000, size = 10)
但是如果你想让位置依赖于值,你需要创建一个带有文本y位置的变量:(见这里的栏中间)
donnees_M$text_y <- donnees_M$CoG/2
ggplot(data=donnees_M, aes(x=Phoneme, y=CoG, fill=Phoneme)) +
geom_bar(position=position_dodge(), colour="black", stat="identity") +
geom_errorbar(aes(ymin=CoG-ci, ymax=CoG+ci), width=.2,position=position_dodge(.9)) +
labs(x=NULL, y="Centre of Gravity") + theme(panel.background = element_rect(fill = "white")
, panel.grid.minor=element_line(color = "grey30"), panel.grid.major =element_line(color = "grey30")) +
scale_fill_manual(values=c("deepskyblue3","seagreen4")) +
geom_text(aes(y=text_y, label=format(donnees_M$CoG,digits=0)), size = 10) +
guides(fill=F) +
theme(axis.title.y = element_text(size = rel(2), angle = 90)) + ylim(0,6000) +
theme(axis.text.x = element_text(size = rel(3), color="black")) +
theme(axis.text.y = element_text(size = rel(2.8), color="black"))