我试图在ggplot2的轴标题中插入一个故意的换行符。如下面的MWE所示,我使用parse(text=X)
来评估希腊字符和子/超级脚本的可能LaTeX
样式。我已经看到ggpot2和表达式对象的标签工具应该能够处理新的行字符,例如\n
。但我承诺使用parse(text=X)
。然而,我没有成功地将它包含在我的x和y轴标题字符串中。
\n
。*{"\n"}*
时,我得到与*
相同的行为。 这让我怀疑parse(text=X)
不支持新的线路符号。如果是这种情况,插入新行的适当方法是什么?
在过去,我已经能够使用atop
但是这次尝试使用不同的东西,因为它在行间留下了太多空白。所以,我会接受一个答案,演示如何自定义atop
。
MWE:
library(ggplot2)
library("grid")
print("Program started")
gg <- ggplot(diamonds, aes(clarity, fill=cut))
gg <- gg + geom_bar(position="dodge")
gg <- gg + labs(y=parse(text="ahhhh\nWe~are~here"), x=parse(text="ahhhh\nWe~are~here"),title="title")
gg <- gg + theme(
legend.justification=c(0,1),
legend.position=c(0,1),
legend.title=element_blank(),
plot.background=element_rect(fill="red")
);
gg <- gg + guides(fill=guide_legend(title.position="top"))
print(gg)
print("Program complete - a graph should be visible.")
答案 0 :(得分:2)
在双引号内用单引号括起你的文字,你会在轴上得到两行标签。
gg + labs(y=parse(text="'ahhhh\nWe~are~here'"), x=parse(text="'ahhhh\nWe~are~here'"),title="title")
您可以使用单引号字符串和表达式的组合构造plotmath输出,但有一些限制 - 例如,单引号字符串不能以\n
结尾
检查此代码
parse(text = "'ahhhh\nWe' ~are%=>% bold(here[123])") # it works
parse(text = "'ahhhh\n' We~are%=>% bold(here[123])") # it throws an error