CodeGym /Cursos /Python SELF PT /Salvando gráficos como imagens para uso em relatórios

Salvando gráficos como imagens para uso em relatórios

Python SELF PT
Nível 42, Lição 1
Disponível

1. Formas de salvar gráficos

Hoje nós não vamos apenas criar gráficos bonitos, mas também transformá-los em imagens incríveis que podem ser inseridas nos seus relatórios, apresentações ou álbuns para aqueles momentos: "Olha só, eu fiz isso!". Quem sabe, talvez o seu gráfico se torne viral nas redes sociais e você finalmente consiga seus quinze minutos de fama!

Assim como em um bom programa de culinária, onde escolhemos a receita, vamos começar analisando os diversos formatos de arquivos nos quais podemos salvar gráficos. Cada formato tem suas características, e entender essas nuances vai te ajudar a escolher o "prato certo" para o seu "menu". Aqui estão alguns deles:

  • PNG (Portable Network Graphics): um dos formatos mais populares para gráficos web. Se destaca por boa compressão sem perda de qualidade, suporte à transparência e ampla compatibilidade com a maioria dos aplicativos.
  • PDF (Portable Document Format): ideal para incorporar em documentos. É um formato vetorial, ou seja, mantém a nitidez ao ser ampliado.
  • SVG (Scalable Vector Graphics): outro formato vetorial, perfeito para web. Suporta interatividade e animações.
  • JPEG (Joint Photographic Experts Group): geralmente usado para fotos, já que possui compressão com perdas, o que pode não ser ideal para gráficos com texto.

Agora que entendemos as opções disponíveis, vamos salvar os gráficos usando a função savefig() da biblioteca Matplotlib.

Salvando gráficos com savefig()

O processo de salvar gráficos com Matplotlib é praticamente indolor, como atualizar o sistema operacional do seu celular (se tudo correr bem). Vamos ver como isso é feito.

Python

import matplotlib.pyplot as plt

# Suponha que temos um gráfico simples
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

plt.plot(x, y, label='Números primos')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Gráfico linear de números primos')
plt.legend()

# Salvando o gráfico em um arquivo
plt.savefig('primos.png')

Esse código cria um arquivo primos.png no diretório atual. É isso aí! Sem precisar decorar encantamentos ou fazer sacrifícios aos deuses digitais. Você só precisa trocar o plt.show() por plt.savefig('caminho/nome do arquivo') e pronto!

2. Configurando os parâmetros de salvamento

Claro, só salvar o gráfico não basta — queremos que ele fique fantástico! Como diz o velho ditado: "Se o gráfico for de má qualidade, ninguém vai notar". Ou algo assim.

Configurando a qualidade e resolução da imagem

Para criar imagens de alta qualidade, você pode configurar o parâmetro dpi (dots per inch), que define a densidade de pixels na imagem. Quanto maior o valor, mais detalhada será a imagem. Para web, geralmente 72 dpi é suficiente, e para impressão — 300 dpi ou mais.

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 25, 30]

plt.plot(x, y)

# Salvando gráfico com alta resolução
plt.savefig("grafico_alta_qualidade.png", dpi=300)
plt.show()

Aqui, dpi=300 aumenta a qualidade da imagem, tornando-a mais nítida, o que é especialmente útil para relatórios e impressão.

Salvando sem bordas e margens adicionais

Matplotlib, por padrão, adiciona margens ao redor do gráfico, o que nem sempre é conveniente para inserir em relatórios. Para salvar a imagem sem margens, use o parâmetro bbox_inches="tight".

Python

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [5, 10, 15, 20, 25]

plt.plot(x, y)

# Salvando gráfico sem margens
plt.savefig("grafico_sem_bordas.png", bbox_inches="tight")
plt.show()

O parâmetro bbox_inches="tight" remove os espaços extras ao redor do gráfico, permitindo obter uma imagem mais compacta.

Definindo tamanhos do gráfico antes de salvar

Às vezes, é necessário salvar o gráfico com tamanhos específicos (por exemplo, para apresentações ou publicações na web). Com figure(figsize=(largura, altura)), você pode definir o tamanho do gráfico em polegadas.

Python

import matplotlib.pyplot as plt

# Definindo tamanhos do gráfico
plt.figure(figsize=(10, 5))  # 10 polegadas de largura e 5 de altura

x = [1, 2, 3, 4, 5]
y = [5, 10, 15, 20, 25]

plt.plot(x, y)
plt.title("Gráfico com tamanho definido")

# Salvando gráfico com tamanho especificado
plt.savefig("grafico_tamanho_personalizado.png")
plt.show()

Neste exemplo, o gráfico é salvo com tamanho de 10x5 polegadas. Os tamanhos podem ser ajustados conforme necessário para relatórios ou apresentações.

Parâmetros adicionais do savefig()

  • transparent=True: Salva a imagem com fundo transparente, útil para inserir em fundos coloridos ou transparentes.
  • pad_inches: Define margens extras ao redor do gráfico. Usado em conjunto com bbox_inches.
  • format: Especifica o formato do arquivo de saída: pdf, png, jpg, etc.

Se o parâmetro format não for especificado, o método savefig() tentará determinar o formato a partir do nome do arquivo.

Python

# Salvando gráfico com configuração de parâmetros
plt.savefig('primos_res_alta', dpi=300, pad_inches='tight', format='png', transparent=True)

Agora seu gráfico vai ficar tão nítido que qualquer pessoa que olhar para ele vai dizer: "Uau, você definitivamente sabia o que estava fazendo!"

3. Exemplos de salvamento

Normalmente temos muitos exemplos que podem ser usados para testes e debugging. Isso nos ajuda a entender como diferentes parâmetros afetam o resultado final.

Salvando no formato PDF

Se você precisa incorporar o gráfico em um relatório ou apresentação, o formato PDF é perfeito para isso. Suas propriedades vetoriais permitem ampliar a imagem sem perda de qualidade.

Python

plt.savefig('primos.pdf', bbox_inches='tight')

Salvando no formato vetorial SVG

SVG é ótimo para páginas web ou plugins com animação, pois suas propriedades permitem adicionar interatividade.

Python

plt.savefig('primos.svg', bbox_inches='tight')

Salvando no formato JPEG

Se no seu gráfico predominam imagens em vez de linhas nítidas e texto, o formato JPEG pode ser útil.

Python

plt.savefig('primos.jpg', quality=95)

Dicas úteis

  • Nome do arquivo: Escolha nomes fáceis de entender e descritivos para os arquivos, facilitando sua busca e reutilização.
  • Verificação de qualidade: Antes de incluir no relatório, visualize o gráfico na tela para garantir que a qualidade atende ao esperado.
  • Uso de fundo transparente: Útil ao criar gráficos para apresentações ou sites onde o gráfico pode estar sobre um fundo colorido.

Problemas típicos

Ao salvar gráficos, podem surgir erros, assim como quando você tenta atualizar os drivers da impressora. Um dos problemas mais comuns é a função savefig() não funcionar em ambientes como o Jupyter Notebook. Isso se deve ao fato de que gráficos em ambientes interativos podem apenas ser exibidos, e não salvos. Nesse caso, pode-se usar o método plt.close() para fechar o gráfico após salvá-lo.

1
Tarefa
Python SELF PT, nível 42, lição 1
Bloqueado
Gráfico Linear Básico
Gráfico Linear Básico
2
Tarefa
Python SELF PT, nível 42, lição 1
Bloqueado
Configuração da resolução da imagem
Configuração da resolução da imagem
3
Tarefa
Python SELF PT, nível 42, lição 1
Bloqueado
Salvar o gráfico com dimensões específicas
Salvar o gráfico com dimensões específicas
4
Tarefa
Python SELF PT, nível 42, lição 1
Bloqueado
Salvar em vários formatos
Salvar em vários formatos
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION