2013-06-14 15 views
24

I fig1 genau von 4 um 3 Zoll-Format und im TIFF-Format Korrektur des Programms unten erhalten möchten:Änderung Figur Größe und Figur Format in matplotlib

import matplotlib.pyplot as plt 
list1 = [3,4,5,6,9,12] 
list2 = [8,12,14,15,17,20] 
plt.plot(list1, list2) 
plt.savefig('fig1.png', dpi = 300) 
plt.close() 

Hilfe?

+0

die Erweiterung im Dateinamen von .png in .tif hat die Änderung schaffen die echtes tiff Bild? – golay

Antwort

31

Sie können die Abbildung Größe einstellen, wenn Sie explizit die Figur mit

plt.figure(figsize=(3,4)) 

erstellen zu ändern das Format der gespeicherten Figur ändert nur die Erweiterung im Dateinamen. Allerdings weiß ich nicht, wenn eine der matplotlib Backends Unterstützung tiff

+0

Ändert die Erweiterung des Dateinamens von .png in .tif das echte TIFF-Bild? – golay

+1

Wie ich geschrieben habe, weiß ich nicht, aber aus den Kommentaren zu der anderen Antwort scheint es, dass tiff nicht unterstützt wird. –

14

Der erste Teil (die Ausgabegröße explictly Einstellung) ist nicht allzu schwer:

import matplotlib.pyplot as plt 
list1 = [3,4,5,6,9,12] 
list2 = [8,12,14,15,17,20] 
fig = plt.figure(figsize=(4,3)) 
ax = fig.add_subplot(111) 
ax.plot(list1, list2) 
fig.savefig('fig1.png', dpi = 300) 
fig.close() 

Aber nach einer schnellen Google-Suche auf matplotlib + tiff, ich bin nicht davon überzeugt, dass matplotlib tiff Plots machen. Es gibt einige Erwähnung der GDK backend in der Lage, es zu tun.

Eine Option wäre, die Ausgabe mit einem Werkzeug wie imagemagick convert zu konvertieren.

(Eine andere Möglichkeit ist hier zu warten, bis ein real matplotlib expert auftaucht und beweist mir falsch ;-)

+0

Wenn Sie das [GDK-Backend] (http://matplotlib.org/faq/usage_faq.html#what-is-a-backend) installiert haben, können Sie damit tiffs nativ zeichnen. Möglicherweise müssen einige Abhängigkeiten installiert werden. – GWW

+0

@GWW - Ich sah, dass erwähnt, aber ich sah auch [diesen Thread] (http://matplotlib.1069221.n5.nabble.com/16bit-tiff-support-td11448.html) unterstellt, dass das eine Lüge ist. Natürlich ist es ein alter Thread, also könnte es seither repariert worden sein. – mgilson

+0

Ich habe es nie wirklich versucht, also könnte es eine Lüge sein. – GWW

6

Sie können die Größe des Grundstücks durch Hinzufügen dieses

plt.rcParams["figure.figsize"] = [16,9] 
+1

Dies ist genau das, was ich in Jupyter Notebook verwenden musste, um die Handlung breiter zu machen. –

+1

Arbeiten in Jupyter-Notebooks – ashwinids

+0

rcParams hat eine enorme Anpassbarkeit –

Verwandte Themen