Como salvar parcelas como um arquivo de imagem sem exibição em Matplotlib
Podemos simplesmente salvar os gráficos gerados a partir do Matplotlib utilizando os métodos savefig()
e imsave()
. Se estivermos em modo interativo, a trama poderá ser exibida. Para evitar a exibição do gráfico, utilizamos os métodos close()
e ioff()
.
Matplotlib savefig()
Método para salvar imagem
Podemos salvar parcelas geradas a partir da Matplotlib usando matplotlib.pyplot.savefig(). Podemos especificar o caminho e o formato em savefig()
no qual o gráfico precisa ser salvo.
Sintaxe:
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,
)
Aqui, fname
representa o nome do arquivo em relação ao caminho com respeito ao diretório atual.
Salvar plotagem sem exibição no modo interativo
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 5, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title("Plot generated using Matplotlib")
plt.xlabel("x")
plt.ylabel("sinx")
plt.savefig("Plot generated using Matplotlib.png")
Isto salva a trama gerada com o nome como Plot gerado utilizando Matplotlib.png
no diretório de trabalho atual.
Também podemos salvar os lotes em outros formatos como png
, jpg
, svg
, pdf
e muitos outros. Da mesma forma, podemos utilizar diferentes argumentos do método figsave()
personalizar a imagem.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 5, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title("Plot generated using Matplotlib")
plt.xlabel("x")
plt.ylabel("sinx")
plt.savefig("Customed Plot.pdf", dpi=300, bbox_inches="tight")
Isto salva o gráfico como Customed Plot.pdf
dentro do diretório de trabalho. Aqui, dpi=300
representa 300 pontos por polegada na imagem salva, e bbox_inches='tight'
representa nenhuma caixa de delimitação em torno da imagem de saída.
Salvar Plot sem exibição no modo não interativo
Entretanto, se estivermos em modo interativo, a figura é sempre mostrada. Para evitar isso, fechamos à força a janela da figura para evitar a exibição da trama utilizando os métodos close()
e ioff()
. O modo interativo é ativado por causa do método ion()
.
Evite a exibição com o método close()
matplotlib.pyplot.close
pode ser usado para fechar a janela da figura.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 5, 100)
y = np.sin(x)
fig = plt.figure()
plt.ion()
plt.plot(x, y)
plt.title("Plot generated using Matplotlib")
plt.xlabel("x")
plt.ylabel("sinx")
plt.close(fig)
plt.savefig("Plot generated using Matplotlib.png")
Evite a exibição com ioff()
Método
Podemos desligar o modo interativo utilizando os métodos matplotlib.pyplot.ioff()
. Isto impede que a figura seja exibida.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 5, 100)
y = np.sin(x)
fig = plt.figure()
plt.ion()
plt.plot(x, y)
plt.title("Plot generated using Matplotlib")
plt.xlabel("x")
plt.ylabel("sinx")
plt.ioff()
plt.savefig("Plot generated using Matplotlib.png")
matplotlib.pyplot.imsave()
Método para salvar imagem
Podemos utilizar matplotlib.pyplot.imsave()
para salvar matrays como arquivos de imagem em Matplotlib.
import numpy as np
import matplotlib.pyplot as plt
image = np.random.randn(100, 100)
plt.imsave("new_1.png", image)
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn