2017-01-09 3 views
0

Ich möchte nur Fe2 + mit "2+" superscripted schreiben.ggplot2 Achsentitel mit sukzessiv hochgestelltem Operatorzeichen (+, -)

Das funktioniert ("+2" ist hochgestellt, aber die Reihenfolge ist falsch):

df <-data.frame(a=seq(1,20),b=seq(1,20)) 
ggplot(df, aes(x = a, y = b)) + geom_point() + 
    xlab(expression(Fe^{+2} ~ (mu ~ M))) 

Dies gilt nicht:

ggplot(df, aes(x = a, y = b)) + geom_point() + 
    xlab(expression(Fe^{2+} ~ (mu ~ M))) 

offenbar, die "+" Operator nach „2 "in {2+} braucht eine spezielle Behandlung. Jede Hilfe wird geschätzt.

Alernatively, würde ich mich freuen, wenn jemand das gleiche Problem für den folgenden Ausdruck lösen kann:

ggplot(df, aes(x = a, y = b)) + geom_point() + 
xlab(bquote(Fe^2+~' '~'('*mu~'M)')) 
+1

Verwandte: [Minus als ein Exponent in plotmath (in ggplot2 Legende)] (http://stackoverflow.com/questions/13636096/ Minus-als-Exponent-in-Plotmath-in-Ggplot2-Legende). Somit funktioniert 'xlab (Ausdruck (Fe^{2 + Phantom()} ~ (mu ~ M))). – Henrik

Antwort

1

Hier ist eine schnelle Abhilfe ist. Es sieht so aus, als würde die + irgendwann geparst werden und wirft einen Fehler, weil es keine rechte Seite gibt. Also, ein leeres Argument Hinzufügen funktioniert der Trick:

ggplot(df, aes(x = a, y = b)) + geom_point() + 
    xlab(expression(Fe^{2+''}~(mu ~ M))) 

Das Plus-Zeichen macht immer noch auf dem Etikett, aber so bin ich nicht sicher, wo die Parsen geschieht.

Der gleiche grundlegende Ansatz funktioniert für die bquote Version auch:

ggplot(df, aes(x = a, y = b)) + geom_point() + 
    xlab(bquote(Fe^{2+''}~' '~'('*mu~'M)'))