¿Cómo usar símbolos griegos en ggplot2?

Resuelto Sam asked hace 54 años • 4 respuestas

Mis categorías deben nombrarse con letras griegas. Estoy usando ggplot2y 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.

Sam avatar Jan 01 '70 08:01 Sam
Aceptado

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.

  1. Etiquetas de texto: úselas parse = Tdentro geom_texto annotate.
  2. Etiquetas de eje: úselas expression(alpha)para obtener alfa griego.
  3. Etiquetas de facetas: utilizar labeller = label_parseden el interior facet.
  4. 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.

Ramnath avatar Mar 14 '2011 02:03 Ramnath

La solución más sencilla: utilizar caracteres Unicode

No se expressionnecesitan 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)

Matt L. avatar Sep 13 '2018 22:09 Matt L.

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")

Matas Vaitkevicius avatar Mar 31 '2016 12:03 Matas Vaitkevicius

No necesita el latex2exppaquete 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))

ingrese la descripción de la imagen aquí

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 Δ Pricey 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:

ingrese la descripción de la imagen aquí

onlyphantom avatar Jan 04 '2018 12:01 onlyphantom