Как использовать греческие символы в ggplot2?

Мои категории должны быть названы греческими буквами. я использую ggplot2и это прекрасно работает с данными. К сожалению, я не могу понять, как разместить эти греческие символы на оси х (в отметках), а также заставить их появиться в легенде. Есть ли способ сделать это?

ОБНОВЛЕНИЕ: я посмотрел на ссылку, однако, нет хорошего метода, описанного, чтобы выполнить то, что я хочу сделать.

4 ответа

Решение

Вот ссылка на отличную вики, которая объясняет, как поместить греческие символы в ggplot2. Итак, вот что вы делаете, чтобы получить греческие символы

  1. Текстовые метки: использование parse = T внутри geom_text или же annotate,
  2. Этикетки оси: использование expression(alpha) чтобы получить греческий альфа.
  3. Ярлыки фасетов: использование labeller = label_parsed внутри facet,
  4. Ярлыки легенды: использование bquote(alpha == .(value)) в ярлыке легенды.

Вы можете увидеть подробное использование этих опций в ссылке

РЕДАКТИРОВАТЬ. Цель использования греческих символов вдоль отметок может быть достигнута следующим образом

require(ggplot2);
data(tips);
p0 = qplot(sex, data = tips, geom = 'bar');
p1 = p0 + scale_x_discrete(labels = c('Female' = expression(alpha),
                                      'Male'   = expression(beta)));
print(p1);

Для полной документации по различным символам, которые доступны при этом и как их использовать, см. ?plotmath,

Самое простое решение: использовать символы Юникода

нет expression или другие пакеты, необходимые.
Не уверен, что это более новая функция для ggplot, но она работает. Это также позволяет легко смешивать греческий и обычный текст (например, добавляя '*' к галочкам)

Просто используйте символы Юникода в текстовой строке. кажется, работает хорошо для всех вариантов, которые я могу придумать.

library(ggplot2)
ggplot(mtcars, 
       aes(mpg, disp, color=factor(gear))) + 
  geom_point() + 
  labs(title="Title (\u03b1 \u03a9)", # works fine
       x= "\u03b1 \u03a9 x-axis title",    # works fine
       y= "\u03b1 \u03a9 y-axis title",    # works fine
       color="\u03b1 \u03a9 Groups:") +  # works fine
  scale_x_continuous(breaks = seq(10, 35, 5), 
                     labels = paste0(seq(10, 35, 5), "\u03a9*")) + # works fine; to label the ticks
  ggrepel::geom_text_repel(aes(label = paste(rownames(mtcars), "\u03a9*"))) # works fine for text labels in plot

Создано в 2018-11-14 пакетом представлением (v0.2.1)

Использование expression(delta) где "дельта" в нижнем регистре δ и "Дельта", чтобы получить капитал Δ,

Вот полный список греческих символов:

Alpha α альфа
Beta β бета
Гамма гамма
Δ δ дельта
Eps ε эпсилон
Ζ ζ дзета
Η η эта
The θ тета
I ι йота
K κ каппа
Λ λ лямбда
Mu μ mu
Nu ν ню
X ξ xi
Ο omicron
Pi π pi
R ρ rho
Σ σ сигма
Tau τ тау
Up у тебя upsilon
Φ φ фи
Χ хи чи
Ψ ψ фунтов на квадратный дюйм
Ω ω омега

РЕДАКТИРОВАТЬ: Скопировано из комментариев, при использовании в сочетании с другими словами использовать как: expression(Delta*"price")

Вам не нужно latex2exp пакет, чтобы сделать то, что вы хотели сделать. Следующий код поможет.

ggplot(smr, aes(Fuel.Rate, Eng.Speed.Ave., color=Eng.Speed.Max.)) + 
  geom_point() + 
  labs(title=expression("Fuel Efficiency"~(alpha*Omega)), 
color=expression(alpha*Omega), x=expression(Delta~price))

введите описание изображения здесь

Также в некоторых комментариях (без ответа на данный момент) спрашивалось о том, чтобы поставить звездочку (*) после греческого письма. expression(alpha~"*") работает, поэтому я предлагаю попробовать.

Больше комментариев спрашивали о получении Δ Price и я нахожу самый простой способ достичь этого expression(Delta~price)), Если вам нужно добавить что-то перед греческой буквой, вы также можете сделать это:expression(Indicative~Delta~price) который получает вас:

введите описание изображения здесь

Другие вопросы по тегам