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

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

谢谢。
2个回答

4

这是我找到的最好的解决方案:

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文件,其中包含您的R绘图用“tikz”语言的“翻译”。

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


谢谢你的帮助,但我希望星号在帽子下面。 - user27808
也许是 expression(hat(phi^'*')) - AntoniosK

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{}

进入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接