Cómo escribir fórmulas químicas en ggplot [duplicar]

Sep 15 2020

Necesito trazar algunos datos y uno de los trazados debe tener la fórmula de sulfato (SO42-) en las etiquetas.

Estoy usando este código

a=c(1,2,3,4,5)
b=c(1,2,3,4,5)
dd=data.frame(a,b)

G<-ggplot(dd)+
geom_line(x=a, y=b, color="blue")+
labs(x="Depth (m)", y=expression("nss SO"[4]^{2-}"(ppb)"))
G

Y, por supuesto, no funciona: o el - está escrito como un guión entre el 2 y el ppb o simplemente no hace nada después de darme una pared de texto. ¿Me estoy perdiendo de algo?

Respuestas

1 TTS Sep 15 2020 at 13:44

Primero, le falta el aes()componente de geom_line. Para la expresión, no está acertando la sintaxis correctamente. Usando la información que se encuentra aquí , pude crear ...

library(ggplot2)
a=c(1,2,3,4,5)
b=c(1,2,3,4,5)
dd=data.frame(a,b)

G <-ggplot(dd)+
  geom_line(aes(x=a, y=b), color = 'blue') + # need to include aes() designation here
  labs(x="Depth (m)", y=expression("nss SO" ["4"] ^"2-"*" (ppb)"))
G

¡Espero que funcione!

1 Duck Sep 15 2020 at 13:46

Prueba esto también:

#Data
a=c(1,2,3,4,5)
b=c(1,2,3,4,5)
dd=data.frame(a,b)
#Code
G<-ggplot(dd,aes(x=a, y=b))+
  geom_line(color="blue")+
  labs(x="Depth (m)", y=expression(nss~SO[4]^{2^{"-"}}~(ppb)))
G

Salida:

O esto (lo siento profundamente por mi conocimiento de las fórmulas químicas):

#Code 2
G<-ggplot(dd,aes(x=a, y=b))+
  geom_line(color="blue")+
  labs(x="Depth (m)", y=expression(nss~SO[4]^{"2-"}~(ppb)))
G

Salida: