我想用两个expression()语句写一个轴标签.但是,plotmath并且expression不允许这样(例如,下标文本出现在最右侧).我在大约2005年发现了类似问题的讨论,但他们提供的工作并没有转化为我在ggplot2中的应用程序.最近的一个问题解决了多行表达式语句的不同排列,但是这里提供的工作再次不适用于此.
例:
p <- ggplot(mtcars,aes(x=wt,y=mpg))+
geom_point()+
xlab(expression(paste("A long string of text goes here just for the purpose \n of illustrating my point Weight "[reported])))
try(ggsave(plot=p,filename=<some file>,height=4,width=6))
Run Code Online (Sandbox Code Playgroud)
产生一个图像,其中下标"报告"在我希望它位于前一个单词旁边时向右踢出.

我喜欢在我的图表中添加以下标题:
注:美国、英国和荷兰的市场集中度平均值分别为 1920、1388 和 1244
其中“注:”需要斜体,“荷兰分别为1920、1388和1244”应换行。
使用该paste功能,我可以将一部分斜体化。但是使用\ninside paste,可以将所有内容混合在一起,正如您在此处看到的那样(这是经过编辑的图像,使用以下 Paul 的建议制作):
我尝试了各种其他解决方案,但没有成功。这是我正在使用的代码:
library(ggplot2)
note = expression(paste(italic("Note: "), "Market concentration averages in the United States, United Kingdom, and the \nNetherlands are, respectively, 1920, 1388, and 1244"))
gg <- ggplot(mtcars, aes(wt, mpg)) + geom_point()+
# Title
labs(caption=note)
gg + theme(plot.caption=element_text(size=7.5, hjust=0, margin=margin(t=15)))
Run Code Online (Sandbox Code Playgroud)