2011-03-14 20 views
63

Mis categorías deben nombrarse con letras griegas. Estoy usando ggplot2, y funciona muy bien con los datos. Lamentablemente, no puedo descifrar 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?¿Cómo usar los símbolos griegos en ggplot2?

ACTUALIZACIÓN: Eché un vistazo a link, sin embargo, no hay un buen método descrito para lograr lo que quiero hacer.

+4

Véase el análisis de la función 'expression' aquí: http://stackoverflow.com/ preguntas/1395105/conseguir-latex-en-r-parcelas – DrewConway

+0

¿hay algún indicio sobre cómo obtener el 'viewports' de un ggplot2. Si eso se puede hacer, creo que el cambio de marcas x-tic será sencillo. – Sam

+0

Puede usar 'paquete latex2exp': https://cran.r-project.org/web/packages/latex2exp/vignettes/latex2exp.html –

Respuesta

113

Aquí está un link a una excelente wiki que explica cómo poner símbolos griegos en ggplot2. En resumen, esto es lo que haces para obtener símbolos griegos

  1. etiquetas de texto: Use parse = T dentro geom_text o annotate.
  2. Etiquetas de eje: Usa expression(alpha) para obtener la alfa griega.
  3. Etiquetas de facetas: Utilice labeller = label_parsed dentro de facet.
  4. Leyenda Etiquetas: Use bquote(alpha == .(value)) en la etiqueta leyenda.

Se puede ver detalles sobre el uso de estas opciones en el enlace

EDITAR. El objetivo de utilizar símbolos griegos a lo largo de las marcas de graduación 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 la documentación completa sobre los diversos símbolos que están disponibles cuando se hace esto y cómo utilizarlos, consulte ?plotmath.

+0

Quiero que esos símbolos griegos para marcar los tics. No estoy seguro de entender esta respuesta. Voy a tratar esto y escribir de nuevo. Gracias por la dirección que usted. – Sam

+0

Esto no funciona para mi propósito, al menos. Gracias por el puntero sin embargo. – Sam

+0

@ Sam, compruebe el código de ejemplo en mi edición. Se le da símbolos griegos a lo largo de sus ejes x marcas de graduación. Es esto lo que estabas buscando? – Ramnath

21

Use expression(delta) donde 'delta' para minúsculas δ y 'Delta' para obtener el capital Δ.

Aquí está la lista completa de caracteres griegos:

Aa alfa
Bb beta
C c gamma
D d delta
R e epsilon
Z z zeta
H o eta
TH i theta
I j iota
K n k appa
L l lambda
M m mu
N N nu
O O XI
C el omicron
P p pi
P p rho
S. P. sigma
T t tau
Y U upsilon
F z phi
X x chi
psi psi psi
Z Omega Omega

EDIT: Copiado de comentarios, cuando se utiliza en combinación con otros términos utilizan como: expression(Delta*"price")

+1

¿Cómo puedo obtener una etiqueta como 'Δprice'? 'expresión (Deltaprice)' no funciona, tampoco 'expresión (precio delta)' – jf328

+0

@ jf328 Dunno quizás 'expresión (Delta) precio' –

+2

gracias. ¿Pero cómo es eso exactamente? 'xlab (expresión (Delta) price)' da un error – jf328

2

No es necesario el paquete latex2exp para hacer lo que quería hacer. El siguiente código haría el truco.

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

enter image description here

Además, algunos comentarios sin respuesta (a partir de este punto) preguntó acerca de poner un asterisco (*) después de una letra griega. expression(alpha~"*") obras, por lo que se sugieren dar una oportunidad.

Más comentarios preguntamos por conseguir Δ Price y me parece la forma más sencilla de lograr esto es expression(Delta~price)). Si es necesario agregar algo antes de la letra griega, también se puede hacer esto: expression(Indicative~Delta~price) que se obtiene:

enter image description here

Cuestiones relacionadas