savefig pyplot guardar figsize python matplotlib

python - pyplot - savefig matplotlib



Guardar el archivo matplotlib en un directorio (6)

Además de las respuestas ya dadas, si desea crear un nuevo directorio, puede usar esta función:

def mkdir_p(mypath): ''''''Creates a directory. equivalent to using mkdir -p on the command line'''''' from errno import EEXIST from os import makedirs,path try: makedirs(mypath) except OSError as exc: # Python >2.5 if exc.errno == EEXIST and path.isdir(mypath): pass else: raise

y entonces:

import matplotlib import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111) ax.plot(range(100)) # Create new directory output_dir = "some/new/directory" mkdir_p(output_dir) fig.savefig(''{}/graph.png''.format(output_dir))

Aquí está el código simple que genera y guarda una imagen de trazado en el mismo directorio que el código. Ahora, ¿hay alguna manera de guardarlo en el directorio de mi elección?

import matplotlib import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111) ax.plot(range(100)) fig.savefig(''graph.png'')


Aquí está la pieza de código que guarda la trama en el directorio seleccionado. Si el directorio no existe, se crea.

import os import matplotlib.pyplot as plt script_dir = os.path.dirname(__file__) results_dir = os.path.join(script_dir, ''Results/'') sample_file_name = "sample" if not os.path.isdir(results_dir): os.makedirs(results_dir) plt.plot([1,2,3,4]) plt.ylabel(''some numbers'') plt.savefig(results_dir + sample_file_name)


Aquí hay un ejemplo simple para guardar en un directorio (unidad usb externa) usando la versión 2.7.10 de Python con el editor de Sublime Text 2:

import numpy as np import matplotlib.pyplot as plt X = np.linspace(-np.pi, np.pi, 256, endpoint = True) C, S = np.cos(X), np.sin(X) plt.plot(X, C, color = "blue", linewidth = 1.0, linestyle = "-") plt.plot(X, S, color = "red", linewidth = 1.0, linestyle = "-") plt.savefig("/Volumes/seagate/temp_swap/sin_cos_2.png", dpi = 72)


De acuerdo con los docs savefig acepta una ruta de archivo, por lo que todo lo que necesita es especificar una ruta completa (o relativa) en lugar de un nombre de archivo.


La forma más sencilla de hacerlo es la siguiente:

save_results_to = ''/Users/S/Desktop/Results/'' plt.savefig(save_results_to + ''image.png'', dpi = 300)

La imagen se guardará en el directorio save_results_to con el nombre image.png


Si el directorio en el que desea guardar es un subdirectorio de su directorio de trabajo, simplemente especifique la ruta relativa antes de su nombre de archivo:

fig.savefig(''Sub Directory/graph.png'')

Si desea utilizar una ruta absoluta, importe el módulo os :

import os my_path = os.path.abspath(__file__) # Figures out the absolute path for you in case your working directory moves around. ... fig.savefig(my_path + ''/Sub Directory/graph.png'')

Si no quiere preocuparse por la barra diagonal al frente del nombre del subdirectorio, puede unir las rutas de manera inteligente de la siguiente manera:

import os my_path = os.path.abspath(__file__) # Figures out the absolute path for you in case your working directory moves around. my_file = ''graph.png'' ... fig.savefig(os.path.join(my_path, my_file))