这是我正在做的事情的一个例子(下面提供了mydf的输入):
library(ggplot2)ggplot(mydf,aes(x=variable,y = value,fill = category)) + geom_bar(stat="IDentity") + geom_text(aes(label = value,y = pos-(value/2)),size = 3)
到目前为止我尝试的是:
使用position = position_dodge(wIDth = 0.5)和position = position_jitter(h = 0.5,w = 0.5),但没有一个导致我试图做的事情.
我的第一个想法是定义hjust = c(1,-1)希望它将被回收并且文本将在hjust == 1和hjust == -1之间交替,但它会导致错误消息:
Error: Incompatible lengths for set aesthetics: size,hjust
我也试过定义size = c(3,3,3),hjust = c(1,-1,1,1)但这导致相同的错误消息.
我会很感激如何以正确的方式实现这一点(我也对其他建议持开放态度).
我无法弄清楚为什么dput不起作用(对我来说也没有),所以这里是可读格式的数据:
category variable value pos maxpos1 AX WW 47.8 47.8 184.12 AY WW 5.6 53.4 184.13 AZ WW 15.8 69.2 184.14 BX WW 31.4 100.6 184.15 BY WW 11.7 112.3 184.16 BZ WW 10.7 123.0 184.17 CX WW 2.2 125.2 184.18 CY WW 21.4 146.6 184.19 CZ WW 37.5 184.1 184.110 AX SM 39.8 39.8 148.611 AY SM 2.9 42.7 148.612 AZ SM 13.2 55.9 148.613 BX SM 22.7 78.6 148.614 BY SM 7.3 85.9 148.615 BZ SM 8.9 94.8 148.616 CX SM 1.6 96.4 148.617 CY SM 17.3 113.7 148.618 CZ SM 34.9 148.6 148.619 AX AsIs 156.9 156.9 519.020 AY AsIs 13.1 170.0 519.021 AZ AsIs 70.5 240.5 519.022 BX AsIs 72.6 313.1 519.023 BY AsIs 30.7 343.8 519.024 BZ AsIs 35.6 379.4 519.025 CX AsIs 5.2 384.6 519.026 CY AsIs 44.8 429.4 519.027 CZ AsIs 89.6 519.0 519.0解决方法 通过创建一个hjust变量,您可以获得所需的结果.代码:
mydf$hj <- rep(c(1,-1),length.out=27)ggplot(mydf,y=value,fill=category)) + geom_bar(stat="IDentity") + geom_text(aes(label=value,y=pos-(value/2),hjust=hj),size=4)
这使:
@konvas提出的稍微替代解决方案:
ggplot(mydf,hjust=rep(c(1,length.out=length(value))),size=4)总结
以上是内存溢出为你收集整理的使用hjust替换geom_text位置全部内容,希望文章能够帮你解决使用hjust替换geom_text位置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)