Como escrever fórmulas químicas em ggplot [duplicado]

Sep 15 2020

Preciso traçar alguns dados e um deles deve ter a fórmula do sulfato (SO42-) nos rótulos.

Estou 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

E, claro, não funciona: ou o - é escrito como um travessão entre o 2 e o ppb ou simplesmente não faz nada depois de me dar uma parede de texto. Estou esquecendo de algo?

Respostas

1 TTS Sep 15 2020 at 13:44

Primeiro, você está perdendo o aes()componente de geom_line. Para a expressão, você não está acertando a sintaxe corretamente. Usando as informações encontradas aqui , consegui criar ....

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

Experimente também:

#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

Resultado:

Ou isto (sinto profundamente pelo meu conhecimento de 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

Resultado: