在轴标题中添加希腊字符和星号(*)

时间:2018-08-31 10:01:01

标签: r label

我想在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 )

谢谢。

2 个答案:

答案 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^*}$"))

enter image description here

您需要使用额外的反斜杠来转义反斜杠,并将数学表达式包装在$分隔符内(就像在常规LaTeX内联数学中一样)。我使用了\widehat{},但是您也可以使用hat{}

答案 1 :(得分:3)

这是我发现的最好看的解决方案:

hist( x, nclass = 100, cex.lab=1.5, xlab = expression(hat(phi)~"*"), 
      ylab="Frequency", main="", cex.axis=1.5 )

enter image description here


要想获得成功,我不知道具有基本绘图功能的漂亮解决方案。我认为@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"))

TikZ result