¿Cómo usar símbolos griegos en ggplot2?
Mis categorías deben nombrarse con letras griegas. Estoy usando ggplot2
y funciona muy bien con los datos. Desafortunadamente, no puedo entender cómo poner esos símbolos griegos en el eje x (en las marcas) y también hacer que aparezcan en la leyenda. ¿Hay alguna forma de hacerlo?
ACTUALIZACIÓN: Eché un vistazo al enlace , sin embargo, no se describe ningún buen método para lograr lo que quiero hacer.
Aquí hay un enlace a una excelente wiki que explica cómo poner símbolos griegos en ggplot2. En resumen, esto es lo que debes hacer para obtener símbolos griegos.
- Etiquetas de texto: úselas
parse = T
dentrogeom_text
oannotate
. - Etiquetas de eje: úselas
expression(alpha)
para obtener alfa griego. - Etiquetas de facetas: utilizar
labeller = label_parsed
en el interiorfacet
. - Etiquetas de leyenda: uso
bquote(alpha == .(value))
en etiquetas de leyenda.
Puede ver el uso detallado de estas opciones en el enlace.
EDITAR. El objetivo de utilizar símbolos griegos a lo largo de las marcas se puede lograr de la siguiente manera
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);
Para obtener documentación completa sobre los distintos símbolos que están disponibles al hacer esto y cómo usarlos, consulte ?plotmath
.
La solución más sencilla: utilizar caracteres Unicode
No se expression
necesitan paquetes u otros.
No estoy seguro de si esta es una característica más nueva de ggplot, pero funciona. También facilita la combinación de texto griego y normal (como agregar '*' a las marcas)
Simplemente use caracteres Unicode dentro de la cadena de texto. Parece funcionar bien para todas las opciones que se me ocurren. Editar: anteriormente no funcionaba en etiquetas de facetas. Al parecer esto se ha solucionado en algún momento.
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*")), size =3) + # works fine
facet_grid(~paste0(gear, " Gears \u03a9"))
Creado el 28/08/2019 por el paquete reprex (v0.3.0)
Utilice expression(delta)
donde 'delta' para minúsculas δ
y 'Delta' para obtener mayúsculas Δ
.
Aquí está la lista completa de caracteres griegos:
Α α alfa
Β β beta
Γ γ gamma
Δ δ delta
Ε ε épsilon
Ζ ζ zeta
Η η eta
Θ θ theta
Ι ι iota
Κ κ kappa
Λ λ lambda
Μ μ mu
Ν ν nu
Ξ ξ xi
Ο ο omicron
Π π pi
Ρ ρ rho
Σ σ sigma
Τ τ tau
Υ υ upsilon
Φ φ phi
Χ χ chi
Ψ ψ psi
Ω ω omega
EDITAR: Copiado de los comentarios, cuando se usa junto con otras palabras, use como:expression(Delta*"price")
No necesita el latex2exp
paquete para hacer lo que quería hacer. El siguiente código funcionaría.
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))
Además, algunos comentarios (sin respuesta hasta este momento) preguntaron sobre poner un asterisco (*) después de una letra griega. expression(alpha~"*")
Funciona, así que te sugiero que lo pruebes.
Más comentarios preguntaron sobre cómo obtenerlo Δ Price
y creo que la forma más sencilla de lograrlo es expression(Delta~price))
. Si necesitas agregar algo antes de la letra griega, también puedes hacer esto:
expression(Indicative~Delta~price)
lo que te da: