这是一个扩展问题:How to put labels over geom_bar for each bar in R with ggplot2
我的数据有一些底片,因此标签会侵入栏中。我该怎么调整呢?我需要动态阅读标签展示位置。
谢谢!
growth<-data.frame(ElapsedTimeMonths=c(3,6,12,24),MedianGrowth=c(-0.011,-0.002,0.014,0.052))
g<-ggplot(growth, aes(x=factor(ElapsedTimeMonths),y=MedianGrowth))
g<-g+geom_bar(position="dodge", stat="identity")
g<-g+scale_y_continuous(labels = percent)
g<-g+geom_text(aes(label=as.character(100*MedianGrowth)), position=position_dodge(width=0.9), vjust=-0.25)
g
答案 0 :(得分:3)
图形参数设置可以是矢量,以便不同 形状(这里的geom文本)可以有不同的外观。
您需要将 vjust 作为向量,使用MedianGrowth的相反符号
您的数据
growth <- data.frame(ElapsedTimeMonths=c(3,6,12,24),
MedianGrowth=c(-0.011,-0.002,0.014,0.052),
)
我创建了vjust矢量
vvjust <- rep(1, length(growth$MedianGrowth))
vvjust[growth$MedianGrowth > 0 ] <- -0.25
[1] 1.00 1.00 -0.25 -0.25
然后我绘制
g<- ggplot(growth, aes(x=factor(ElapsedTimeMonths),y=MedianGrowth))
g<- g+ geom_bar(stat='identity',position='dodge')
g<- g+ scale_y_continuous(labels = percent)
g<- g+ geom_text(aes(label=as.character(100*MedianGrowth)),
position=position_dodge(width=0.9), vjust=vvjust)