我想在R中的直方图的x轴上添加一个希腊字符。 我可以单独写希腊字符,也可以戴着帽子,但问题是我需要将此字符与帽子和星号()一起使用。更具体地说,我想要像hat(phi ^ )这样的东西。这是我所做的:
x = rnorm(1000)
hist( x, nclass = 100, cex.lab=1.5, xlab = expression(hat(phi^*)),
ylab="Frequency", main="", cex.axis=1.5 )
谢谢。
答案 0 :(得分:4)
使用ggplot2
而不是基R怎么样?然后可以使用latex2exp::TeX
在轴标签中使用(某些)LaTeX表达式。
set.seed(2018)
x = rnorm(1000)
library(ggplot2)
library(latex2exp)
ggplot(data.frame(x = x), aes(x)) +
geom_histogram(bins = 100) +
theme_minimal() +
xlab(TeX("$\\widehat{\\phi^*}$"))
您需要使用额外的反斜杠来转义反斜杠,并将数学表达式包装在$
分隔符内(就像在常规LaTeX内联数学中一样)。我使用了\widehat{}
,但是您也可以使用hat{}
。
答案 1 :(得分:3)
这是我发现的最好看的解决方案:
hist( x, nclass = 100, cex.lab=1.5, xlab = expression(hat(phi)~"*"),
ylab="Frequency", main="", cex.axis=1.5 )
要想获得成功,我不知道具有基本绘图功能的漂亮解决方案。我认为@Maurits Evers的方法是复杂性和结果美化之间的最佳折衷。
但是无论如何,这是一个更“高级”的解决方案(也许比顶部要高一点,但是...)。它基于以下博客文章:http://iltabiai.github.io/tips/latex/2015/09/15/latex-tikzdevice-r.html
要使其正常工作,您需要安装tikzDevice
软件包。
首先,加载程序包并创建数据集。
library(tikzDevice)
library(ggplot2)
dat <- data.frame(x = rnorm(1000))
然后创建一个TeX文件,该文件将以“ tikz”语言包含R图的“翻译”。
tikz(file = "plot_test.tex", width = 5, height = 5, standAlone = TRUE)
ggplot(dat, aes(x = x)) +
geom_histogram(color="white") + theme_bw() +
labs( x = "$\\widehat{\\phi^*}$")
dev.off()
然后,您可以将LaTeX代码直接复制或调用到您自己的LaTeX文档中(然后不需要standAlone=TRUE
参数),或者您可以使用这两个非常有用的函数来生成pdf版本并查看结果。
tools::texi2dvi("plot_test.tex", pdf=TRUE)
system(paste(getOption('pdfviewer'), "plot_test.pdf"))