2

这是一个扩展问题:如何使用 ggplot2 为 R 中的每个条在 geom_bar 上放置标签

我的数据有一些负面影响,因此标签侵入了条形图。我该如何调整这个?我需要动态读取标签位置。

谢谢!

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

在此处输入图像描述

4

1 回答 1

3

图形参数设置可以是矢量,以便不同的形状(此处为几何文字)可以有不同的外观。

您需要将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)

在此处输入图像描述

于 2012-12-16T06:10:31.963 回答