Personalização de Gráficos de Linha com Matplotlib

MatplotlibBeginner
Pratique Agora

Introdução

Matplotlib é uma poderosa biblioteca Python para criar visualizações estáticas, animadas e interativas. Embora criar um gráfico básico seja simples, personalizá-lo é fundamental para tornar seus dados claros, compreensíveis e visualmente atraentes.

Neste laboratório, você começará com um gráfico de linha simples e o personalizará progressivamente. Você aprenderá a alterar a cor da linha, adicionar marcadores aos pontos de dados, modificar o estilo da linha, adicionar um título ao seu gráfico e ajustar os limites dos eixos.

Como este ambiente de laboratório usa um WebIDE, não podemos exibir gráficos em uma janela GUI separada. Em vez disso, salvaremos cada gráfico como um arquivo de imagem usando plt.savefig(). Você poderá então visualizar a imagem gerada diretamente dentro do IDE.

Vamos começar!

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 96%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Plotar linha com cor personalizada usando plt.plot(color='red')

Nesta etapa, você aprenderá como alterar a cor de uma linha em seu gráfico. Por padrão, o Matplotlib alterna por um conjunto predefinido de cores. No entanto, você pode facilmente especificar uma cor de sua escolha usando o parâmetro color na função plt.plot().

Primeiro, vamos criar um gráfico básico de uma onda senoidal. Usaremos o NumPy para gerar os pontos de dados.

Abra o arquivo main.py localizado no diretório ~/project no explorador de arquivos à esquerda. Substitua seu conteúdo pelo seguinte código. Este código plotará uma onda senoidal e a colorirá de vermelho.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with a custom color
plt.plot(x, y, color='red')

## Save the plot to a file
plt.savefig('/home/labex/project/plot_color.png')

print("Plot saved as plot_color.png")

Após atualizar o arquivo main.py, salve-o. Agora, execute o script a partir do terminal na parte inferior do IDE:

python3 main.py

Você deverá ver a seguinte saída no terminal:

Plot saved as plot_color.png

Um novo arquivo chamado plot_color.png aparecerá no diretório ~/project. Dê um duplo clique nele para abrir e visualizar seu primeiro gráfico personalizado. Você verá uma onda senoidal vermelha.

Plot color

Adicionar marcadores usando plt.plot(marker='o')

Nesta etapa, você adicionará marcadores aos seus pontos de dados. Marcadores são úteis para destacar a localização exata de cada ponto de dados na linha, o que pode ser especialmente útil quando os pontos de dados são esparsos.

Você pode adicionar marcadores usando o parâmetro marker na função plt.plot(). Existem muitos estilos de marcadores disponíveis, como 'o' para círculos, 'x' para cruzes e '*' para estrelas.

Vamos modificar o arquivo main.py para adicionar marcadores de círculo ao nosso gráfico. Também mudaremos o nome do arquivo de saída para plot_marker.png para manter nosso progresso da etapa anterior.

Atualize o arquivo main.py com o seguinte código:

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with a custom color and marker
plt.plot(x, y, color='red', marker='o')

## Save the plot to a new file
plt.savefig('/home/labex/project/plot_marker.png')

print("Plot saved as plot_marker.png")

Salve o arquivo e execute o script novamente no terminal:

python3 main.py

O terminal mostrará esta saída:

Plot saved as plot_marker.png

Agora, encontre o novo arquivo plot_marker.png no explorador de arquivos e dê um duplo clique nele. Você verá que a linha vermelha agora tem pequenos círculos em cada ponto de dados.

Plot marker

Definir estilo da linha usando plt.plot(linestyle='--')

Nesta etapa, você aprenderá a alterar o estilo da própria linha. O padrão é uma linha sólida, mas você pode alterá-la para uma linha tracejada, uma linha pontilhada ou outras para diferenciar entre várias linhas no mesmo gráfico ou simplesmente por razões estéticas.

Isso é feito usando o parâmetro linestyle (ou seu atalho ls). Estilos comuns incluem '--' para tracejado, ':' para pontilhado e '-.' para traço-ponto.

Vamos atualizar nosso gráfico para usar uma linha tracejada. Modifique o arquivo main.py conforme mostrado abaixo. Também mudaremos o nome do arquivo de saída para plot_linestyle.png.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with custom color, marker, and line style
plt.plot(x, y, color='red', marker='o', linestyle='--')

## Save the plot to a new file
plt.savefig('/home/labex/project/plot_linestyle.png')

print("Plot saved as plot_linestyle.png")

Salve as alterações e execute o script do seu terminal:

python3 main.py

Você verá a mensagem de confirmação:

Plot saved as plot_linestyle.png

Abra o arquivo recém-criado plot_linestyle.png. Você notará que a linha que conecta os marcadores agora está tracejada em vez de sólida.

Plot linestyle

Adicionar título usando plt.title()

Um gráfico sem título pode ser ambíguo. É crucial dar aos seus gráficos um título descritivo para que os espectadores possam entender imediatamente o que o gráfico representa. No Matplotlib, você pode adicionar um título usando a função plt.title().

Nesta etapa, você adicionará o título "Onda Senoidal" ao seu gráfico. Esta função é chamada antes de salvar a figura.

Modifique seu arquivo main.py para incluir a chamada plt.title(). O novo arquivo de saída será plot_title.png.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with customizations
plt.plot(x, y, color='red', marker='o', linestyle='--')

## Add a title to the plot
plt.title('Sine Wave')

## Save the plot to a new file
plt.savefig('/home/labex/project/plot_title.png')

print("Plot saved as plot_title.png")

Salve o arquivo e execute o script:

python3 main.py

A saída será:

Plot saved as plot_title.png

Abra plot_title.png para ver seu gráfico. Ele agora deve ter o título "Onda Senoidal" exibido no topo.

Plot title

Ajustar limites dos eixos usando plt.xlim() e plt.ylim()

Às vezes, você pode querer focar em uma região específica do seu gráfico ou adicionar algum preenchimento ao redor dos dados. Você pode controlar o intervalo dos eixos x e y usando as funções plt.xlim() e plt.ylim(), respectivamente.

Nesta etapa final, ajustaremos os eixos para "dar zoom" em uma parte da onda senoidal. Definiremos o eixo x para variar de 0 a 5 e o eixo y de -1.5 a 1.5. Isso dará ao nosso gráfico algum preenchimento vertical.

Atualize seu arquivo main.py com a versão final do código. A saída será salva em plot_final.png.

import matplotlib.pyplot as plt
import numpy as np

## Generate data for the plot
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## Plot the data with customizations
plt.plot(x, y, color='red', marker='o', linestyle='--')

## Add a title
plt.title('Sine Wave')

## Adjust the axis limits
plt.xlim(0, 5)
plt.ylim(-1.5, 1.5)

## Save the final plot to a file
plt.savefig('/home/labex/project/plot_final.png')

print("Plot saved as plot_final.png")

Salve o arquivo e execute o script pela última vez:

python3 main.py

Você receberá a confirmação final:

Plot saved as plot_final.png

Agora, abra plot_final.png. Compare-o com os gráficos anteriores. Você verá que o eixo x agora termina em 5, e há mais espaço acima e abaixo da onda senoidal devido aos novos limites do eixo y.

Plot final

Resumo

Parabéns por completar este laboratório! Você aprendeu com sucesso como personalizar um gráfico de linha básico do Matplotlib para torná-lo mais informativo e visualmente atraente.

Neste laboratório, você praticou:

  • Alterar a cor da linha usando o parâmetro color em plt.plot().
  • Adicionar marcadores de ponto de dados com o parâmetro marker.
  • Definir o estilo da linha usando o parâmetro linestyle.
  • Adicionar um título descritivo com a função plt.title().
  • Ajustar os intervalos dos eixos com plt.xlim() e plt.ylim().

Estas são habilidades fundamentais para criar gráficos de qualidade profissional para análise e apresentação de dados. Sinta-se à vontade para experimentar ainda mais, tentando cores, marcadores e estilos de linha diferentes, ou adicionando rótulos aos eixos x e y usando plt.xlabel() e plt.ylabel().