Je veux obtenir fig1 exactement de la taille 4 par 3 pouces, et en format tiff en corrigeant le programme ci-dessous:
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()
De l'aide?
Vous pouvez définir la taille de la figure si vous créez explicitement la figure avec
plt.figure(figsize=(3,4))
Pour changer le format de la figure enregistrée, il suffit de changer l’extension dans le nom du fichier. Cependant, je ne sais pas si l'un des backends matplotlib supporte tiff
Vous pouvez changer la taille de la parcelle en ajoutant ceci
plt.rcParams["figure.figsize"] = [16,9]
La première partie (définir explicitement la taille de la sortie) n’est pas trop difficile:
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()
Mais après une rapide recherche google sur matplotlib + tiff, je ne suis pas convaincu que matplotlib puisse créer des parcelles tiff
. Il est fait mention du fait que backend GDK puisse le faire.
Une option serait de convertir la sortie avec un outil tel que convert
de imagemagick.
(Une autre option est d'attendre ici jusqu'à ce qu'un n véritable expert matplotlib se présente et me prouve le contraire ;-)
Si vous avez besoin de changer la taille de la figure after vous l'avez créée, utilisez les méthodes
fig = plt.figure()
fig.set_figheight(value_height)
fig.set_figwidth(value_width)
où value_height
et value_width
sont en pouces. Pour moi, c'est le moyen le plus pratique.