Добавление греческого символа и звездочки (*) к заголовку оси - PullRequest
0 голосов
/ 31 августа 2018

Я хочу добавить греческий символ к оси X моего графика гистограммы в R. Я могу написать греческий символ один или со шляпой, но проблема в том, что мне нужно, чтобы этот персонаж был вместе со шляпой и звездочкой (). Точнее, я хочу что-то вроде шляпы (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 голосов
/ 31 августа 2018

Как насчет использования 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{} вместо этого.

0 голосов
/ 31 августа 2018

Вот лучшее решение, которое я нашел:

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, который будет содержать «перевод» вашего графика 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

...