首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用三个值和bgroup使用atop注释的r ggplot

使用三个值和bgroup使用atop注释的r ggplot
EN

Stack Overflow用户
提问于 2016-11-14 02:01:19
回答 1查看 1.5K关注 0票数 4

有没有办法注释三行叠加的ggplot,同时保持这三行的文本大小不变?

我就快到了,但是第三行的文本大小不同,看起来bgroup只使用了前两行,我不能正确理解……

我将文本添加到"?plotmath“中的”to“应用程序上,它工作得很好,但第三行的文本与其他两行的文本大小不同……

代码语言:javascript
复制
library(ggplot2)
line1 = "xxx data1"
line2 = "yyy data2"
line3 = "zzz data3"

df=data.frame(x=rep(1:8, 3), y=c(0,1,3,4,5,6,7,8, 8,7,6,3,2,1,3,4, 0,2,4,5,6,7,8,9), variable=c("x", "x","x","x","x","x","x","x","y","y","y","y","y","y","y","y","z","z","z","z","z","z","z","z"))
p <-  ggplot(df) + theme_bw() + geom_point(aes(x=x,y=y, color=variable)) + geom_line(aes(x=x,y=y, color=variable)) + 
geom_text(x=max(df$x), y = max(df$y), label = paste('bgroup("{", atop(atop("',line1,'","',line2,'"),"', line3,'"), "}")',sep=''), size=3.5,parse=TRUE)

我以为我得到了bgroup中的所有三行,但我不能正确粘贴。如果有什么我可以尝试的,请告诉我。非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-02-21 02:26:56

要完美地将所有内容居中(这是\n做不到的),无论行数多少,保持每段文本的大小不变,同时能够调整行间间距,请改用以下代码:

代码语言:javascript
复制
xlab(expression(atop(textstyle("whateverline1"),atop(textstyle("whateverline2"),atop(scriptscriptstyle(""),textstyle("whateverline3"))))))

然后使用labeller=label_parsed

这也适用于facet_grid、title和ylab

请注意,atoptextstyle用于定位文本,同时保持文本的大小不变;scriptscriptstyle("")用于控制行间距。您还可以根据需要使用scriptstylescriptscriptstyle使用不同的相对文本大小,当然也可以在theme部分使用element_text(size=whatevernumber)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40577023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档