Data Visualization

Salvando Plots Matplotlib como Imagens Eficientemente Sem Exibir

Spread the love

Matplotlib é uma poderosa biblioteca Python para criar visualizações. Salvar gráficos como arquivos de imagem é uma tarefa comum, mas o comportamento padrão de exibir o gráfico antes de salvar pode ser ineficiente. Este artigo demonstra como salvar eficientemente gráficos Matplotlib diretamente em arquivos de imagem sem a etapa de exibição intermediária.

Sumário

Usando savefig() para Salvar Gráficos

O método savefig() é a opção mais versátil para salvar gráficos Matplotlib. Ele oferece controle sobre o formato do arquivo, resolução e tamanho da figura. Para evitar exibir o gráfico, chame savefig() antes de qualquer comando que mostraria o gráfico (como plt.show()). Lembre-se de fechar a figura usando plt.close() para liberar memória, particularmente quando se trabalha com numerosos gráficos.


import matplotlib.pyplot as plt
import numpy as np

# Dados de exemplo
x = np.linspace(0, 10, 100)
y = np.sin(x)

# Criar o gráfico
plt.plot(x, y)
plt.xlabel("Eixo X")
plt.ylabel("Eixo Y")
plt.title("Onda Senoidal")

# Salvar a figura SEM exibi-la
plt.savefig("sine_wave.png", dpi=300, bbox_inches='tight') # dpi controla a resolução, bbox_inches garante que todos os elementos sejam incluídos

plt.close() 

Este código salva o gráfico como sine_wave.png em 300 DPI. O argumento bbox_inches='tight' garante que todo o gráfico, incluindo rótulos e títulos, seja capturado na imagem salva. Você pode facilmente alterar o formato do arquivo (por exemplo, “.pdf”, “.svg”, “.jpg”). Consulte a documentação do Matplotlib para uma lista completa de formatos suportados.

Usando imsave() para Salvar Matrizes de Imagem

Para salvar matrizes de imagem diretamente, imsave() fornece uma abordagem mais concisa. Isso é particularmente útil se você já gerou dados de imagem como uma matriz NumPy, eliminando a necessidade de criar um objeto de figura Matplotlib.


import matplotlib.pyplot as plt
import numpy as np

# Criar uma matriz de imagem de exemplo (escala de cinza)
image_array = np.random.rand(256, 256)

# Salvar a matriz de imagem em um arquivo
plt.imsave("random_image.png", image_array, cmap='gray')

Este código cria e salva uma imagem em escala de cinza de 256×256. O argumento cmap especifica a paleta de cores; ‘gray’ é usado aqui. Outras paletas de cores estão disponíveis. imsave() é eficiente porque ignora o tratamento de figuras.

Em resumo, tanto savefig() quanto imsave() oferecem maneiras eficientes de salvar saídas Matplotlib sem exibi-las. A melhor escolha depende se você está trabalhando com uma figura completa ou uma matriz de imagem bruta. Priorizar savefig() antes de plt.show() e usar plt.close() aumenta a eficiência, especialmente ao gerar muitas imagens.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *