Introdução
Neste laboratório, você aprenderá a criar e personalizar gráficos de pizza usando Matplotlib, uma das bibliotecas de visualização de dados mais populares em Python. Um gráfico de pizza é um gráfico estatístico circular, dividido em fatias para ilustrar a proporção numérica.
Você começará preparando os dados, plotará um gráfico de pizza básico e adicionará progressivamente recursos como um efeito de "explode", rótulos de porcentagem e uma sombra para tornar o gráfico mais informativo e visualmente atraente.
Todas as operações serão realizadas dentro do LabEx WebIDE. Você escreverá código Python em um arquivo e o executará para gerar imagens de gráficos. Como a exibição gráfica não está disponível neste ambiente, você usará plt.savefig() para salvar seus gráficos como arquivos de imagem e, em seguida, visualizá-los diretamente no IDE.
Preparar listas de rótulos e tamanhos
Nesta etapa, você preparará os dados necessários para plotar um gráfico de pizza. Um gráfico de pizza precisa de dois conjuntos principais de dados: os rótulos para cada fatia e o tamanho ou valor correspondente de cada fatia.
Primeiro, vamos criar um script Python. No explorador de arquivos do WebIDE, à esquerda, você verá um arquivo chamado main.py dentro do diretório project. Dê um duplo clique nele para abri-lo no editor.
Agora, adicione o seguinte código ao main.py. Este código define duas listas Python: labels para as categorias e sizes para suas respectivas proporções.
## Data for the pie chart
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
sizes = [15, 30, 45, 10]
labels: Uma lista de strings que será usada para rotular cada fatia do gráfico de pizza.sizes: Uma lista de números que representa o valor ou a proporção de cada fatia. A soma desses valores representará o todo do gráfico.
Após adicionar o código, seu arquivo main.py deverá ficar assim. Este script ainda não produz nenhuma saída, mas configura os dados necessários para as próximas etapas.
Plotar gráfico de pizza usando plt.pie(sizes, labels=labels)
Nesta etapa, você usará os dados da etapa anterior para plotar um gráfico de pizza básico. Utilizaremos a função plt.pie() da biblioteca Matplotlib.
Primeiro, você precisa importar o módulo matplotlib.pyplot, que é convencionalmente importado com o alias plt. Em seguida, você pode chamar a função plt.pie(), passando suas listas sizes e labels como argumentos.
Como não podemos exibir uma janela de GUI neste ambiente, salvaremos o gráfico em um arquivo de imagem usando plt.savefig().
Atualize seu arquivo main.py com o seguinte código:
import matplotlib.pyplot as plt
## Data for the pie chart
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
sizes = [15, 30, 45, 10]
## Create a figure and a set of subplots
fig, ax = plt.subplots()
## Plot the pie chart
ax.pie(sizes, labels=labels)
## Save the figure to a file
plt.savefig('/home/labex/project/pie_chart.png')
print("Pie chart saved to pie_chart.png")
Agora, vamos executar o script. Abra um terminal no WebIDE (você pode usar o ícone + no painel do terminal ou o menu Terminal > New Terminal) e execute o seguinte comando:
python3 main.py
Você deverá ver a seguinte saída no terminal:
Pie chart saved to pie_chart.png
Um novo arquivo chamado pie_chart.png aparecerá no seu diretório project. Dê um duplo clique em pie_chart.png no explorador de arquivos para abri-lo e visualizar seu primeiro gráfico de pizza.

Adicionar efeito explode usando o parâmetro explode
Nesta etapa, você aprenderá como enfatizar uma fatia particular do gráfico de pizza, "explodindo-a". Isso significa afastá-la ligeiramente do centro do gráfico. Isso é alcançado usando o parâmetro explode na função pie().
O parâmetro explode recebe uma tupla ou lista com o mesmo comprimento dos seus dados sizes. Cada valor na tupla especifica a fração do raio com a qual cada fatia será deslocada. Um valor de 0 significa que a fatia permanece no lugar, enquanto um valor não zero como 0.1 a afastará.
Vamos modificar o main.py para explodir a fatia 'Hogs'. Também salvaremos a saída em um novo arquivo, pie_chart_explode.png, para compará-lo com o anterior.
Atualize seu arquivo main.py com o seguinte código:
import matplotlib.pyplot as plt
## Data for the pie chart
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0) ## only "explode" the 2nd slice (i.e. 'Hogs')
## Create a figure and a set of subplots
fig, ax = plt.subplots()
## Plot the pie chart with explode effect
ax.pie(sizes, explode=explode, labels=labels)
## Save the figure to a file
plt.savefig('/home/labex/project/pie_chart_explode.png')
print("Pie chart with explode effect saved to pie_chart_explode.png")
Agora, execute o script atualizado a partir do terminal:
python3 main.py
Você verá esta saída:
Pie chart with explode effect saved to pie_chart_explode.png
Um novo arquivo pie_chart_explode.png está agora no seu diretório de projeto. Abra-o para ver a fatia 'Hogs' ligeiramente separada do restante do gráfico.

Exibir porcentagens usando autopct='%1.1f%%'
Nesta etapa, você adicionará rótulos de porcentagem a cada fatia para tornar o gráfico mais informativo. Isso pode ser feito usando o parâmetro autopct.
O parâmetro autopct aceita uma string de formato que determina como o valor percentual de cada fatia é exibido. Por exemplo, '%1.1f%%' formatará o número como um número de ponto flutuante com uma casa decimal, seguido por um sinal de porcentagem. O %% no final é necessário para exibir um símbolo literal de %.
Vamos atualizar o main.py para incluir porcentagens. Salvaremos o resultado em pie_chart_percent.png.
import matplotlib.pyplot as plt
## Data for the pie chart
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0) ## only "explode" the 2nd slice (i.e. 'Hogs')
## Create a figure and a set of subplots
fig, ax = plt.subplots()
## Plot the pie chart with explode and percentage
ax.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%')
## Save the figure to a file
plt.savefig('/home/labex/project/pie_chart_percent.png')
print("Pie chart with percentages saved to pie_chart_percent.png")
Execute o script novamente a partir do seu terminal:
python3 main.py
A saída será:
Pie chart with percentages saved to pie_chart_percent.png
Agora, abra pie_chart_percent.png no explorador de arquivos. Você verá que cada fatia agora exibe seu valor percentual.

Definir sombra usando shadow=True
Nesta etapa final, você adicionará uma sombra ao gráfico de pizza para dar um leve visual 3D. Isso é feito facilmente definindo o parâmetro shadow como True.
Vamos combinar todos os recursos que aprendemos: explode, autopct e shadow. Salvaremos o gráfico final como pie_chart_final.png.
Atualize seu arquivo main.py com o código completo:
import matplotlib.pyplot as plt
## Data for the pie chart
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0) ## only "explode" the 2nd slice (i.e. 'Hogs')
## Create a figure and a set of subplots
fig, ax = plt.subplots()
## Plot the final pie chart with all features
ax.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%',
shadow=True, startangle=90)
## Equal aspect ratio ensures that pie is drawn as a circle.
ax.axis('equal')
## Save the figure to a file
plt.savefig('/home/labex/project/pie_chart_final.png')
print("Final pie chart saved to pie_chart_final.png")
Nesta versão final, também adicionamos startangle=90 para rotacionar o ponto de partida do gráfico de pizza em 90 graus no sentido anti-horário, e ax.axis('equal') para garantir que o gráfico de pizza seja desenhado como um círculo perfeito.
Execute o script uma última vez:
python3 main.py
A saída será:
Final pie chart saved to pie_chart_final.png
Abra pie_chart_final.png para ver seu gráfico de pizza completo e com todos os recursos, com uma fatia explodida, rótulos de porcentagem e uma sombra.

Resumo
Parabéns por completar o laboratório! Você aprendeu com sucesso como criar e personalizar gráficos de pizza usando Matplotlib em Python.
Neste laboratório, você aprendeu a:
- Preparar dados (rótulos e tamanhos) para um gráfico de pizza.
- Plotar um gráfico de pizza básico usando
plt.pie(). - Salvar um gráfico Matplotlib em um arquivo de imagem usando
plt.savefig(). - Enfatizar uma fatia usando o parâmetro
explode. - Exibir valores percentuais nas fatias usando o parâmetro
autopct. - Adicionar um efeito visual 3D com o parâmetro
shadow=True.
Agora você está equipado com as habilidades fundamentais para criar gráficos de pizza informativos e visualmente atraentes para seus projetos de visualização de dados.



