Salvar figuras idênticas às figuras exibidas em Matplotlib
Ao salvar a figura utilizando matplotlib.pyplot.savefig(), temos um parâmetro chamado dpi, que especifica o tamanho relativo do texto e a largura do traço nas linhas. Por defeito, o valor de dpi para matplotlib.pyplot.show() é 80, enquanto o valor por defeito de dpi para matplotlib.pyplot.savefig() é 100.
Para garantir que as figuras pareçam idênticas para o método show() e savefig(), devemos utilizar dpi=fig.dpi no método savefig(). Podemos também definir o parâmetro figsize no método matplotlib.pyplot.figure() para ajustar as dimensões absolutas da parcela de modo a que ambas as figuras sejam idênticas.
Defina dpi=fig.dpi no método savefig() para salvar figuras idênticas às figuras exibidas no Matplotlib
import matplotlib.pyplot as plt
x = [1, 3, 4, 5, 8]
y = [3, 1, 5, 4, 9]
fig = plt.figure()
plt.plot(x, y)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("X vs Y")
fig.savefig("plot.png", dpi=fig.dpi)
plt.show()
Resultado:

Figura Guardada:

Este processo guarda a figura como plot.png, que é idêntica à que é apresentada.
Por vezes, podemos obter grandes fronteiras sobre as figuras criadas. Para resolver este valor, podemos utilizar o método matplotlib.pyplot.tight_layout() ou definir bbox_inches='tight' no método savefig().
import matplotlib.pyplot as plt
x = [1, 3, 4, 5, 8]
y = [3, 1, 5, 4, 9]
fig = plt.figure()
plt.plot(x, y)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("X vs Y")
fig.savefig("plot.png", dpi=fig.dpi, bbox_inches="tight")
plt.show()
Resultado:

Figura Guardada:

Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn