Salvar figuras idênticas às figuras exibidas em Matplotlib

Suraj Joshi 15 fevereiro 2024
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 mostrada guardar figuras idênticas às figuras mostradas Matplotlib

Figura Guardada:

Figura Guardada guardar figuras idênticas às figuras expostas Matplotlib

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 mostrada guardar figuras idênticas às figuras mostradas Matplotlib

Figura Guardada:

Figura Guardada guardar figuras idênticas às figuras expostas Matplotlib

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Artigo relacionado - Matplotlib Images