2012-07-29 2 views
8

ich folgend als Achsenbeschriftung in matplotlib bin mit:Wie seltsam Raum in LaTeX-Stil Mathematik in matplotlib Grundstück entfernen

"Pixel Radiance ($W/m^2/\mu m$)" 

Aber wenn ich produziere ein Diagramm mit diesem als die y-Achse Etikett I hole das Bild unten, das einen merkwürdigen Abstand zwischen dem m^2 und dem \ mu hat, wodurch es ziemlich seltsam aussieht. Wie kann ich diesen seltsamen Raum entfernen?

example graph

Ein reproduzierbarer Beispiel ohne irgendwelche meiner eigenen Daten zu verwenden, ist:

from matplotlib.pyplot import * 
plot([1, 2, 3], [1, 2, 3]) 
ylabel("($W/{m^2}/\mu m$)") 
+2

SI-Einheitensymbole sollten normalerweise nicht _italic_ sein – moooeeeep

+0

Es ist schwierig, ein nicht-kursives $ \ mu $ zu erhalten. – mikuszefski

Antwort

14

Sie einen negativen Raum verwenden können, \!:

r"Pixel Radiance ($W/m^2\!/\mu m$)" 

Übrigens, ich Es empfiehlt sich, Raw-Strings mit LaTeX-Formeln zu verwenden, da LaTeX-Befehle (oder Teile davon) als Backslash-Escapes interpretiert werden ouldn't wollen \tau als Registerkarte gefolgt von au enden.

+3

+1 für rohe Zeichenfolge Vorschlag –

1

Matplotlib versucht Latexcode zu interpretieren und hat eine eigene Methode, den Text zu drucken. Die Ergebnisse stimmen nicht unbedingt mit der Ausgabe des echten Latex-Compilers überein. Wenn Sie echtes Latex-Text-Rendering wünschen, müssen Sie den Parameter text.usetex rc aktivieren. Dies erlaubt Ihnen auch, Latex-Pakete (wie zB siunitx) zu laden und Figuren zu erstellen, die zu Ihrem Dokument passen, wenn Sie planen, sie einzubinden.

Der zusätzliche Platz wird nicht angezeigt, wenn Latex verwendet wird. Sie könnten einfach die Problemumgehung verwenden und einen negativen Platz hinzufügen, aber ich neige dazu, beim Erstellen von Zahlen für Dokumente Latex zu verwenden.

+0

Oh, und einige Werbung für meine Xelatex Matplotlib Backend :) https://github.com/pwuertz/matplotlib-backend-pgf – pwuertz