cambiar el tamaño de la figura y el formato de la figura en matplotlib


Quiero obtener fig1 exactamente de 4 por 3 pulgadas de tamaño, y en formato tiff corrigiendo el siguiente programa:

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

Alguna ayuda?

Author: golay, 2013-06-14

3 answers

Puede establecer el tamaño de la figura si crea explícitamente la figura con

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

Para cambiar el formato de la figura guardada, simplemente cambie la extensión en el nombre del archivo. Sin embargo, no se si alguno de los backends de matplotlib soporta tiff

 42
Author: Francesco Montesano,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-14 13:38:01

La primera parte (establecer el tamaño de salida explícitamente) no es demasiado difícil:

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

Pero después de una búsqueda rápida en Google en matplotlib + tiff, no estoy convencido de que matplotlib pueda hacer tiff parcelas. Hay alguna mención de la GDK backend ser capaz de hacerlo.

Una opción sería convertir la salida con una herramienta como imagemagick convert.

(Otra opción es esperar aquí hasta que un verdadero experto en matplotlib aparezca y demuestre que estoy equivocado; -)

 15
Author: mgilson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:54:07

Puede cambiar el tamaño de la gráfica agregando esto

plt.rcParams["figure.figsize"] = [16,9]
 15
Author: Ghose and co,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-11 07:33:24