我正在尝试用Theta希腊符号和P(z)标记图的y轴,并用逗号分隔它们。另外,我想标注我的x轴Q(z_i),其中i是下标。我尝试了几种不同的方法。.
string <- ", P(z)"
thet <- bquote(theta)
ylab.fig2 <- paste(thet, string, sep = "")
并且已经用expression(theta)
做过类似的事情。我在ggplot ylab(fig.2)中使用ylab.fig2作为输入。
new <- ggplot(data = data.frame(x=0), aes(x=x)) +
stat_function(fun=Pz.eq, aes(colour="P(z)")) +
stat_function(fun=bid1, aes(colour="Bid Curve: House 1")) +
stat_function(fun=bid2, aes(colour="Bid Curve: House 2")) +
stat_function(fun=bid3, aes(colour="Bid Curve: House 3")) +
xlim(0,20) + ylim(0,6) +
xlab("Q(z_i)") + ylab(ylab.fig2) +
ggtitle("Figure 2: Property Choice Per Household") +
theme(panel.grid = element_blank(),
axis.text.x = element_blank(),
axis.text.y = element_blank(),
axis.ticks.x = element_blank(),
axis.ticks.y = element_blank(),
legend.title = element_blank(),
plot.title = element_text(hjust=0.5)) +
scale_colour_manual("Groups",
values = c("darkseagreen", "darkkhaki", "darkslategray3", "firebrick"))
bquote()和expression()如果都是唯一的输入,都可以正常工作,但是当我使用粘贴返回轴标签的其余部分时,不会输出希腊符号。我相信这是由于每个对象的class()不同。或者,如果有一种方法可以在标签中编译LaTex,则可以解决我的x轴和y轴问题。
总体上,我想通过x和y轴标签完成三件事:1)带有文本的Concat希腊字母。2)将粗体文本放置在标签内(仅P(z)中的z矢量将为粗体)。3)在我的文字上放置“ i”下标。
latex2exp
包可能是最简单的:
library(latex2exp)
string <- ", P(z)"
thet <- "$\\theta$"
ylab.fig2 <- TeX(paste(thet, string, sep = ""))
然后用作... + ylab(ylab.fig2)
构建图。
或使用bquote和表达式:
library(ggplot2)
i=2
f <- bquote(expression(theta * P(bold(z))))
g <- bquote(expression(Q(z[.(i)])))
ggplot(mtcars, aes(x=hp, y=wt)) + geom_point()+
ylab(eval(f))+
xlab(eval(g))