Ich habe ein seltsames Problem. Mit IPython Notebook habe ich ein ziemlich umfangreiches Skript erstellt, das mit pandas und matplotlib eine Reihe von Diagrammen erstellt. Als mein Basteln abgeschlossen war, kopierte ich (und bereinigte) den Code in ein eigenständiges Python-Skript (so dass ich es in den SVN schieben kann und meine Papier-Co-Autoren können die Diagramme auch erstellen).Warum ist Matplotlib-Plot von Ipython Notebook etwas anders als Terminal-Version produziert?
Die Einfachheit halber habe ich das Standalone-Python-Skript in das Notebook wieder importieren und eine Reihe von Diagrammen erstellen:
import create_charts as cc
df = cc.read_csv_files("./data")
cc.chart_1(df, 'fig_chart1.pdf')
...
Seltsam genug, die PDF-Datei, die ich unter Verwendung der obigen Verfahren erhalten ist etwas anders als die. pdf-Datei bekomme ich, wenn ich mein eigenständiges Python-Skript von meinem Windows 7-Terminal aus starte. Der auffälligste Unterschied ist, dass in einem bestimmten Diagramm die Legende in der oberen Ecke statt in der unteren Ecke liegt. Aber es gibt auch andere kleine Unterschiede (Bounding Box Größe, Schriftart scheint etwas anders)
Was könnte die Ursache dafür sein. Und wie kann ich es beheben? (Ich schließe schon mein Notebook und neu gestartet, mein create_charts
Skript erneut zu importieren und alle nicht gespeicherten Änderungen ausschließen) Berichte Mein Terminal I Python bin mit 2.7.2 und pip freeze | grep ipython
Berichte ipython 0.13.1
Beachten Sie, dass Sie die MPL-Einstellungen einfach überschreiben, anstatt zu verhindern, dass IPython sie ändert, wie von Matt vorgeschlagen. –
@hans: vielleicht. Aber es erreicht das Ziel meiner Frage: Sicherstellen, dass die Dinge gleich aussehen. – Rabarberski