Wijzig figuurgrootte en figuurformaat in matplotlib

Ik wil fig1 verkrijgen van exact 4 bij 3 inch en in tiff-formaat om het onderstaande programma te corrigeren:

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

Antwoord 1, autoriteit 100%

Je kunt de figuurgrootte instellen als je de figuur expliciet maakt met

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

U moet de figuurgrootte instellen voordat u plt.plot()aanroept
Om het formaat van de opgeslagen figuur te wijzigen, verandert u gewoon de extensie in de bestandsnaam. Ik weet echter niet of een van de backends van matplotlib tiff ondersteunt


Antwoord 2, autoriteit 44%

U kunt de grootte van de plot wijzigen door deze toe te voegen voordat u de figuur maakt.

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

Antwoord 3, autoriteit 16%

Het eerste deel (expliciet instellen van de uitvoergrootte) is niet zo moeilijk:

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

Maar na een snelle Google-zoekopdracht op matplotlib + tiff, ben ik er niet van overtuigd dat matplotlib tiffplots kan maken. Er is enige vermelding dat de GDK-backenddit kan doen .

Eén optie zou zijn om de uitvoer te converteren met een gereedschap zoals ImageMagick’s convert.

(een andere optie is om hier te wachten tot een echte matplotlib-expert verschijnt en bewijst mij verkeerd; )


Antwoord 4, Autoriteit 14%

Als u de figuurgrootte na hebt gewijzigd, gebruikt u deze, de methoden

fig = plt.figure()
fig.set_figheight(value_height)
fig.set_figwidth(value_width)

Waar value_heightEN value_widthZIJN IN INCHES. Voor mij is dit de meest praktische manier.

Other episodes