web-dev-qa-db-fra.com

Indices et exposants "-" ou "+" avec des étiquettes d'axe ggplot2? (notation chimique ionique)

J'ai obtenu ce complot en utilisant le code ci-dessous

enter image description here

Dans mon intrigue, je veux que le NO3 ait le signe négatif "-" en exposant comme ci-dessous

enter image description here

Dans l'étiquette de l'axe des x, je ne pouvais pas utiliser le signe négatif uniquement en exposant de NO3, j'ai donc dû utiliser -1 comme indiqué ci-dessous

x <- seq(0,2*pi,0.1)
y <- sin(x)

df <- data.frame(x, y)
ggplot(df, aes(x=x, y=y))+
geom_point(size=4)+
labs(x=expression(Production~rate~" "~mu~moles~NO[3]^{-1}-N~Kg^{-1}),
     y=expression(Concentration~mg~L^{-1})) 

Des suggestions sur la façon de changer l'étiquette pour avoir un signe négatif uniquement sans 1?

14
shiny

Essayez de citer le signe moins après l'opérateur en exposant:

ggplot(df, aes(x=x, y=y))+
geom_point(size=4)+
labs(x=expression(Production~rate~" "~mu~moles~NO[3]^{"-"}-N~Kg^{-1}),
     y=expression(Concentration~mg~L^{-1})) +
theme(legend.title = element_text(size=12, face="bold"),
      legend.text=element_text(size=12),
      axis.text=element_text(size=12),
      axis.title = element_text(color="black", face="bold", size=18))

Je pense qu'il semble plus scientifiquement précis d'utiliser l'opérateur %.% Entre les unités:

+ labs(x=expression(Production~rate~" "~mu~moles~NO[3]^{textstyle("-")}-N %.% Kg^{-1}),
     y=expression(Concentration~mg~L^{-1})) +

textstyle devrait empêcher la taille du texte en exposant d'être réduit. Je ne sais pas non plus pourquoi vous avez un " " Entre deux tildes. Vous pouvez enchaîner un tas de tildes ensemble pour augmenter les "espaces":

ggplot(df, aes(x=x, y=y))+
geom_point(size=4)+
labs(x=expression(Production~rate~~~~~~~~~~~~mu~moles~NO[3]^{textstyle("-")}-N %.% Kg^{-1}),
     y=expression(Concentration~mg~L^{-1})) +
theme(legend.title = element_text(size=12, face="bold"),
      legend.text=element_text(size=12),
      axis.text=element_text(size=12),
      axis.title = element_text(color="black", face="bold", size=18))

enter image description here

Et une astuce bonus de plotmath: la citation de nombres est un moyen de contourner la difficulté documentée de produire des chiffres en italique avec plotmath. (L'utilisation de italic(123) ne réussit pas, ... mais italic("123") réussit.)

16
42-