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.
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.
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".
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.
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 combbox_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.
# 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.
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.
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.
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.
GO TO FULL VERSION