Cómo trazar y guardar un gráfico en alta resolución en Matplotlib

  1. Trazar gráfico en alta resolución en Matplotlib
  2. Guardar figura en alta resolución en Matplotlib

Para guardar un gráfico en alta resolución en Matplotlib, controlamos varios parámetros de la función savefig(). Del mismo modo, podemos trazar gráficos en alta resolución configurando un valor alto del parámetro dpi en la función figure().

Trazar gráfico en alta resolución en Matplotlib

Podemos trazar figuras en altas resoluciones estableciendo valores altos de dpi en la función matplotlib.pyplot.figure().

Sintaxis de matplotlib.pyplot.figure():

matplotlib.pyplot.figure(num=None, 
                         figsize=None, 
                         dpi=None, 
                         facecolor=None, 
                         edgecolor=None, 
                         frameon=True, 
                         FigureClass=<class 'matplotlib.figure.Figure'>,
                         **kwargs)

dpi significa puntos por pulgada. Representa el número de píxeles por pulgada en la figura. El valor predeterminado para dpi en la función matplotlib.pyplot.figure() es 100. Podemos establecer valores más altos de dpi para generar gráficos de alta resolución. Sin embargo, el aumento de dpi también aumentará la figura y tenemos que ajustar el valor apropiado de dpi para que esa figura no se recorte.

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 20)
m = 1.5
c = 2
y = m*x + c

plt.figure(dpi=150)
plt.plot(x, y)
plt.title("y=mx+c")
plt.xlabel('x-axis')
plt.ylabel('y-axis')

plt.show()

Producción:

Trazado con alta resolución

Guardar figura en alta resolución en Matplotlib

Podemos trazar cifras en altas resoluciones estableciendo valores altos de dpi en la función matplotlib.pyplot.savefig().

Sintaxis de matplotlib.pyplot.savefig():

matplotlib.pyplot.savefig(fname, 
                          dpi=None,
                          facecolor='w',
                          edgecolor='w',
                          orientation='portrait',
                          papertype=None, 
                          format=None,
                          transparent=False,
                          bbox_inches=None, 
                          pad_inches=0.1,
                          frameon=None, 
                          metadata=None)

Podemos controlar la resolución de la figura guardada a través del parámetro dpi en la función savefig(). Del mismo modo, también podemos variar los formatos mientras guardamos la trama. En general, pngs es mejor que jpeg para gráficos de alta resolución, ya que png es un formato de compresión sin pérdida y el otro es un formato de compresión con pérdida.

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 5)
m = 1.5
c = 2
y = m*x + c

plt.plot(x, y)
plt.title("y=mx+c")
plt.xlabel('x-axis')
plt.ylabel('y-axis')
plt.savefig("High resoltion.png",dpi=300)

Esto guarda la trama como High resoltion.png en el directorio de trabajo actual con una resolución más alta que el caso predeterminado.