2013-06-14 12 views
24

Chcę uzyskać Rysunek 1 dokładnie z 4 przez 3 calowy wielkości oraz w formacie TIFF korygowania poniższy program:zmiana rozmiaru i formatu figura figura w 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() 

pomocy?

+0

Czy zmieniając rozszerzenie w nazwie pliku z .png do .tif stworzyć prawdziwy obraz tiff? – golay

Odpowiedz

31

Można ustawić rozmiar rysunek jeśli jawnie stworzyć postać z

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

Aby zmienić format zapisanej liczby wystarczy zmienić rozszerzenie w nazwie pliku. Jednak nie wiem, czy któryś z backendy matplotlib wsparcia tiff

+0

Czy zmiana rozszerzenia nazwy pliku z .png na .tif tworzy prawdziwy obraz tiff? – golay

+1

Tak jak napisałem, nie wiem, ale z komentarzy na temat drugiej odpowiedzi wynika, że ​​tiff nie jest wspierany. –

14

Pierwsza część (ustawienie rozmiaru wyjściowego explictly) nie jest zbyt trudne:

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() 

Ale po szybkiego wyszukiwania Google na matplotlib + TIFF, nie jestem przekonany, że matplotlib może tiff działek. Jest pewna wzmianka o tym, że można to zrobić.

Jedną opcją byłoby przekonwertowanie wyniku za pomocą narzędzia takiego jak imagemagick's convert.

(Inną opcją jest tu czekać, aż real matplotlib expert pokazuje się i udowadnia mnie źle ;-)

+0

Jeśli masz zainstalowany [backend GDK] (http://matplotlib.org/faq/usage_faq.html#what-is-a-backend), możesz go użyć do narysowania tiffs. Mogą istnieć pewne zależności, które musisz zainstalować. – GWW

+0

@ GWW - Widziałem, że wspomniano, ale widziałem również [ten wątek] (http://matplotlib.1069221.n5.nabble.com/16bit-tiff-support-td11448.html) sugerując, że to kłamstwo. Oczywiście jest to stary wątek, więc od tego czasu mógł zostać naprawiony. – mgilson

+0

Nigdy tego nie próbowałem, więc może to być kłamstwo. – GWW

6

Można zmienić rozmiar działki dodając ten

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

Właśnie to musiałem użyć w Notatniku Juwatera, aby uczynić fabułę szerszą. –

+1

Praca w notebookach jupyter – ashwinids

+0

rcParams ma ogromną siłę dostosowywania –