r - ggplot2标签中的Concat数学符号和字符串-R,LaTex解决方案?
问题描述
我试图用 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() 是唯一输入,它们都可以正常工作,但是当我使用 paste 返回轴标签的其余部分时,不会输出希腊符号。我相信这是由于每个对象的不同 class() 。或者,如果有一种方法可以在标签中编译 LaTex 来解决我的 x 轴和 y 轴问题。
总的来说,我试图用 x 和 y 轴标签来完成三件事:1)用文本连接希腊字母。2) 将粗体文本放在标签内(只有 P( z ) 中的 z 向量是粗体)。3) 在我的文本上放置“i”下标。
虽然在我寻找使用 LaTex 的解决方案之前已经发布了有关希腊字母的问题,但我可以使用的不仅仅是数学符号。使用 LaTex 代码可以让我解决问题 2 和 3,而不仅仅是 1。
解决方案
该latex2exp
软件包可能是最简单的:
library(latex2exp)
string <- ", P(z)"
thet <- "$\\theta$"
ylab.fig2 <- TeX(paste(thet, string, sep = ""))
然后使用 as... + ylab(ylab.fig2)
来构建情节。
推荐阅读
- python - 如何在 python3.6 中将任何随机字节字符串转换为可播放的 mp3 文件?
- julia - 在 Gadfly 中绘制图层列表
- java - 为什么正则表达式在java中运行良好,但在c ++中不起作用?
- cordova - “cordova run android --emulator”命令行工具卡在“等待模拟器启动...”
- qt - 如何获取 QTreeWidgetItem 位置?
- java - 斯坦福 coreNLP 分割没有空格的段落句子
- javascript - 在 vaadin 日期选择器中禁用整个月
- git - 为开源存储库维护本地补丁的任何好主意/最佳实践?
- angular - 无法在数组中发送 http 标头?如何发送数组中的多个对象?
- daml - DAML 方名称中的有效字符是什么?