Как использовать греческие символы в ggplot2?
Мои категории должны быть названы греческими буквами. я использую ggplot2
и это прекрасно работает с данными. К сожалению, я не могу понять, как разместить эти греческие символы на оси х (в отметках), а также заставить их появиться в легенде. Есть ли способ сделать это?
ОБНОВЛЕНИЕ: я посмотрел на ссылку, однако, нет хорошего метода, описанного, чтобы выполнить то, что я хочу сделать.
4 ответа
Вот ссылка на отличную вики, которая объясняет, как поместить греческие символы в ggplot2. Итак, вот что вы делаете, чтобы получить греческие символы
- Текстовые метки: использование
parse = T
внутриgeom_text
или жеannotate
, - Этикетки оси: использование
expression(alpha)
чтобы получить греческий альфа. - Ярлыки фасетов: использование
labeller = label_parsed
внутриfacet
, - Ярлыки легенды: использование
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)
который получает вас: