我想在R中直方图的x轴上添加一个希腊字符。我可以单独或用帽子写出希腊字符,但问题是我需要这个字符带帽子和星号()一起。更具体地说,我想要帽子(phi ^)之类的东西。这是我做的:
x = rnorm(1000)
hist( x, nclass = 100, cex.lab=1.5, xlab = expression(hat(phi^*)),
ylab="Frequency", main="", cex.axis=1.5 )
谢谢。
那么使用ggplot2
而不是base 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{}
代替。
这是我找到的最好看的解决方案:
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"))