Gráficos de pizza do Matplotlib

Os gráficos de pizza do Matplotlib são um recurso essencial para visualizar dados categóricos. Eles são uma ótima maneira de representar dados de maneira clara e concisa

Este artigo visa examinar os méritos e características do uso de gráficos de pizza do Matplotlib para visualização de dados e também demonstrar sua implementação prática por meio de exemplos .



O que é um gráfico de pizza?

Um gráfico de pizza é um gráfico circular dividido em fatias para representar proporções numéricas de dados.

Cada fatia representa uma porcentagem do todo, e o tamanho de cada fatia corresponde ao seu valor proporcional.

Os gráficos de pizza são comumente usados ​​para mostrar dados categóricos, como participação de mercado, resultados de pesquisas e dados demográficos.


Criar Gráficos de Pizza

Se você deseja criar gráficos de pizza Matplotlib com Pyplot , você pode implementar a função pie() :

Exiba o gráfico de pizza básico:

Example: 

1
2
3
4
5
6
7
8
import matplotlib.pyplot as pt
import numpy as npy
mrx = npy.array([5, 40, 10, 20, 7, 13, 4, 1])
pt.pie(mrx)
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de gráfico de pizza Matplotlib 1

Como você pode ver, os gráficos de pizza Matplotlib exibem uma fatia para cada valor na matriz (que é [5, 40, 10, 20, 7, 13, 4, 1]).

Normalmente, a plotagem começa no eixo x e prossegue no sentido anti-horário:

Exemplos de gráficos de pizza do Matplotlib
A fórmula a seguir calcula o tamanho de cada lacuna comparando seu valor com todos os outros valores.

Divisão de um número pela sua soma: x/sum(x)

Faça um gráfico de pizza que contém a matriz de três valores:

Example: 

1
2
3
4
5
6
7
8
import matplotlib.pyplot as pt
import numpy as npy
mrx = npy.array([32, 9, 59])
pt.pie(mrx)
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Após a execução do exemplo acima, você obterá a saída abaixo:

Exemplo de gráfico de pizza Matplotlib 2


Rótulos de gráficos de pizza do Matplotlib

Utilizando o parâmetro rótulo, você pode inserir rótulos no gráfico de pizza.

Nos gráficos de pizza do Matplotlib, o parâmetro de rótulo deve ser uma matriz com um único rótulo por seção:

Insira os diferentes rótulos das seções do gráfico de pizza:

Example: 

1
2
3
4
5
6
7
8
9
10
import matplotlib.pyplot as pt
import numpy as npy
percentage = npy.array([20, 20, 5, 30, 25])
mrx_labels = ["Comedy", "SciFi", "Drama", "Romance", "Action"]
pt.title('Favourite type of movie')
pt.pie(percentage,labels = mrx_labels, autopct='%1.0f%%')
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Rótulos de gráficos de pizza do Matplotlib

No exemplo a seguir, mostre a proporção de esportes do mundo:

Example: 

1
2
3
4
5
6
7
8
9
10
import matplotlib.pyplot as pt
import numpy as npy
percentage = npy.array([40, 25, 15, 12, 8])
mrx_labels = ["Football", "Cricket", "Hockey", "Tennis", "Volleyball"]
pt.title('Most Popular Sports')
pt.pie(percentage,labels = mrx_labels, autopct='%1.0f%%')
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Rótulos de gráficos de pizza Matplotlib 2


Ângulo inicial

Ao fornecer um parâmetro startangle , você pode modificar o ângulo inicial padrão no eixo x .

Em graus, o parâmetro startangle é configurado com um ângulo de 0 como padrão:

A 180 graus, comece a primeira cunha da seguinte maneira:

Example: 

1
2
3
4
5
6
7
8
9
10
import matplotlib.pyplot as pt
import numpy as npy
percentage = npy.array([20, 20, 5, 30, 25])
mrx_labels = ["Comedy", "SciFi", "Drama", "Romance", "Action"]
pt.title('Favourite type of movie')
pt.pie(percentage,labels = mrx_labels, autopct='%1.0f%%', startangle = 180)
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ângulo inicial do gráfico de pizza

Comece a primeira seção do seguinte gráfico de pizza em 45 graus:

Example: 

1
2
3
4
5
6
7
8
9
10
import matplotlib.pyplot as pt
import numpy as npy
percentage = npy.array([40, 25, 15, 12, 8])
mrx_labels = ["Football", "Cricket", "Hockey", "Tennis", "Volleyball"]
pt.title('Most Popular Sports')
pt.pie(percentage,labels = mrx_labels, autopct='%1.0f%%', startangle = 45)
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ângulo inicial do gráfico de pizza 2


Explodir

Gostaria que uma das cunhas se destacasse?

De acordo com os gráficos de pizza do Matplotlib, você pode fazer isso por meio do parâmetro explodir .

Explodir gráfico de pizza

Deve haver um valor para cada cunha no parâmetro explodir, se o parâmetro for definido e não None .

Os valores indicam a que distância cada segmento está do centro:

No gráfico de pizza, arraste a fatia “ Drama ” 0,3 do centro:

Example: 

1
2
3
4
5
6
7
8
9
10
11
import matplotlib.pyplot as pt
import numpy as npy
percentage = npy.array([20, 20, 5, 30, 25])
mrx_labels = ["Comedy", "SciFi", "Drama", "Romance", "Action"]
pt.title('Favourite type of movie')
mrx_explode = [0,0,0.3,0,0]
pt.pie(percentage,labels = mrx_labels, autopct='%1.0f%%', startangle = 180, explode = mrx_explode)
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Do centro do gráfico de pizza, arraste as várias seções com o argumento de explosão:

Example: 

1
2
3
4
5
6
7
8
9
10
11
import matplotlib.pyplot as pt
import numpy as npy
percentage = npy.array([40, 25, 15, 12, 8])
mrx_labels = ["Football", "Cricket", "Hockey", "Tennis", "Volleyball"]
mrx_explode = [0.3, 0, 0.2, 0 , 0.1]
pt.title('Most Popular Sports')
pt.pie(percentage,labels = mrx_labels, autopct='%1.0f%%', startangle = 45, explode = mrx_explode)
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de explosão de gráfico de pizza


Sombra

Especifique o atributo shadows como True para aplicar uma sombra ao gráfico de pizza:

Sombra do gráfico de pizza

No exemplo abaixo, insira a sombra no gráfico de pizza:

Example: 

1
2
3
4
5
6
7
8
9
10
11
import matplotlib.pyplot as pt
import numpy as npy
percentage = npy.array([20, 20, 5, 30, 25])
mrx_labels = ["Comedy", "SciFi", "Drama", "Romance", "Action"]
pt.title('Favourite type of movie')
mrx_explode = [0,0,0.3,0,0]
pt.pie(percentage,labels = mrx_labels, autopct='%1.0f%%', startangle = 180, explode = mrx_explode, shadow = True)
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Utilize a sombra = True para aplicar sombra ao seguinte gráfico de pizza:

Example: 

1
2
3
4
5
6
7
8
9
10
11
import matplotlib.pyplot as pt
import numpy as npy
percentage = npy.array([40, 25, 15, 12, 8])
mrx_labels = ["Football", "Cricket", "Hockey", "Tennis", "Volleyball"]
mrx_explode = [0.3, 0, 0.2, 0 , 0.1]
pt.title('Most Popular Sports')
pt.pie(percentage,labels = mrx_labels, autopct='%1.0f%%', startangle = 45, explode = mrx_explode, shadow = True)
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de sombra de gráfico de pizza


cores

Utilizando o parâmetro cores, você pode personalizar a cor de cada segmento.

As cores devem ser uma matriz com valor único para cada segmento, se fornecido:

Cores do gráfico de pizza

Para cada segmento de um gráfico de pizza, atribua uma cor diferente:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
import matplotlib.pyplot as pt
import numpy as npy
percentage = npy.array([20, 20, 5, 30, 25])
mrx_labels = ["Comedy", "SciFi", "Drama", "Romance", "Action"]
pt.title('Favourite type of movie')
mrx_explode = [0,0,0.3,0,0]
mrx_colors = ['navy','aquamarine','wheat','sandybrown','indigo']
pt.pie(percentage,labels = mrx_labels, autopct='%1.0f%%', startangle = 180, explode = mrx_explode, shadow = True, colors = mrx_colors)
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Utilizando um atributo de cor para inserir cores claras em um gráfico de pizza:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
import matplotlib.pyplot as pt
import numpy as npy
percentage = npy.array([40, 25, 15, 12, 8])
mrx_labels = ["Football", "Cricket", "Hockey", "Tennis", "Volleyball"]
mrx_explode = [0.3, 0, 0.2, 0 , 0.1]
mrx_colors = ['#ffe6e6', '#b3d9ff', '#e6ccb6', '#ccccff', '#ccffff']
pt.title('Most Popular Sports')
pt.pie(percentage,labels = mrx_labels, autopct='%1.0f%%', startangle = 45, explode = mrx_explode, shadow = True, colors = mrx_colors)
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Existem três opções disponíveis para selecionar cores: valores de cores hexadecimais, qualquer um dos 140 nomes de cores suportados ou um dos atalhos fornecidos.

'r' – Red
'g' – Green
'b' – Blue
'c' – Cyan
'm' – Magenta
'y' – Yellow
'k' – Black
'w' – White

Lenda()

Ao chamar a função legend() , você pode fornecer uma descrição para cada segmento:

Legenda do gráfico de pizza

Aplique a função legend() no exemplo abaixo:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
import matplotlib.pyplot as pt
import numpy as npy
percentage = npy.array([20, 20, 5, 30, 25])
mrx_labels = ["Comedy", "SciFi", "Drama", "Romance", "Action"]
pt.title('Favourite type of movie')
mrx_explode = [0,0,0.3,0,0]
mrx_colors = ['navy','aquamarine','wheat','sandybrown','indigo']
pt.pie(percentage,labels = mrx_labels, autopct='%1.0f%%', startangle = 180, explode = mrx_explode, shadow = True, colors = mrx_colors)
pt.legend()
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Insira uma legenda no seguinte gráfico de pizza de esportes:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
import matplotlib.pyplot as pt
import numpy as npy
percentage = npy.array([40, 25, 15, 12, 8])
mrx_labels = ["Football", "Cricket", "Hockey", "Tennis", "Volleyball"]
mrx_explode = [0.3, 0, 0.2, 0 , 0.1]
mrx_colors = ['#ffe6e6', '#b3d9ff', '#e6ccb6', '#ccccff', '#ccffff']
pt.title('Most Popular Sports')
pt.pie(percentage,labels = mrx_labels, autopct='%1.0f%%', startangle = 45, explode = mrx_explode, shadow = True, colors = mrx_colors)
pt.legend()
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Legenda Com Cabeçalho

Nos gráficos de pizza do Matplotlib, forneça o parâmetro de título para a função de legenda para incluir um cabeçalho.

Legenda do gráfico de pizza com cabeçalhos

Implemente a função legend() e insira o argumento do título:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
import matplotlib.pyplot as pt
import numpy as npy
percentage = npy.array([20, 20, 5, 30, 25])
mrx_labels = ["Comedy", "SciFi", "Drama", "Romance", "Action"]
pt.title('Favourite type of movie')
mrx_explode = [0,0,0.3,0,0]
mrx_colors = ['navy','aquamarine','wheat','sandybrown','indigo']
pt.pie(percentage,labels = mrx_labels, autopct='%1.0f%%', startangle = 180, explode = mrx_explode, shadow = True, colors = mrx_colors)
pt.legend(title = 'Movies Genres')
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Defina o peso da fonte como negrito para o seguinte título de legenda do gráfico de pizza:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import matplotlib.pyplot as pt
import numpy as npy
percentage = npy.array([40, 25, 15, 12, 8])
mrx_labels = ["Football", "Cricket", "Hockey", "Tennis", "Volleyball"]
mrx_explode = [0.3, 0, 0.2, 0 , 0.1]
mrx_colors = ['#ffe6e6', '#b3d9ff', '#e6ccb6', '#ccccff', '#ccffff']
pt.title('Most Popular Sports')
pt.pie(percentage, labels=mrx_labels, autopct='%1.0f%%', startangle=45, explode=mrx_explode, shadow=True, colors=mrx_colors)
legend = pt.legend()
legend.set_title('Top 5 Sports', prop={'weight': 'bold'})
pt.show()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

Os pontos a seguir explicam o exemplo acima que usa o Matplotlib para criar uma visualização de gráfico de pizza e adicionar uma legenda a ele:

  • Primeiro, importamos as bibliotecas Matplotlib e NumPy e as renomeamos por conveniência.
  • É criado um array NumPy chamado “ percentual ” que contém as porcentagens de diferentes esportes.
  • É criada uma lista chamada “ mrx_labels ” que contém os rótulos para cada segmento do gráfico de pizza.
  • É criada uma lista chamada “ mrx_explode ” que contém o grau de separação de cada segmento do gráfico de pizza.
  • É criada uma lista chamada “ mrx_colors ” que contém as cores a serem usadas para cada segmento do gráfico de pizza.
  • O título do gráfico de pizza é definido como “ Esportes mais populares ”.
  • O gráfico de pizza é criado usando a função pie() do Matplotlib, onde o parâmetro percent contém os valores para cada segmento do gráfico, o parâmetro labels contém os rótulos para cada segmento e outros parâmetros definem vários atributos do gráfico.
  • Uma legenda é criada para o gráfico de pizza usando a função legend() do Matplotlib.
  • O título da lenda é definido como “ Top 5 Sports ” e colocado em negrito.
  • O gráfico de pizza com a legenda é exibido.

Benefícios

Os gráficos de pizza do Matplotlib oferecem várias vantagens, como:

  • Eles fornecem uma maneira eficiente de apresentar dados que consistem em partes que formam um todo, ilustrando proporções e porcentagens de maneira clara e compreensível.
  • Gerar um gráfico de pizza usando o Matplotlib é relativamente simples, exigindo apenas algumas linhas de código.
  • Os gráficos de pizza do Matplotlib oferecem um alto grau de personalização, permitindo que você modifique as cores , rótulos e outros elementos do gráfico para atender às suas necessidades.
  • Os gráficos de pizza são úteis para comparar as proporções de diferentes categorias ou segmentos de dados , o que pode ajudar a identificar tendências ou padrões.
  • Os gráficos de pizza são mais eficazes quando usados ​​para exibir pequenos conjuntos de dados com poucas categorias. Incluir muitas categorias pode fazer com que o gráfico fique confuso e difícil de entender.

Conclusão

Os gráficos de pizza do Matplotlib são uma escolha popular para visualização de dados devido aos seus inúmeros benefícios. Eles fornecem um meio eficaz de ilustrar proporções e porcentagens de maneira compreensível. Além disso, eles são facilmente criados com código mínimo, altamente personalizáveis, adequados para comparar diferentes categorias de dados e ideais para exibir pequenos conjuntos de dados com menos categorias. Essas vantagens tornam os gráficos de pizza do Matplotlib uma excelente ferramenta para pesquisadores e analistas de dados que desejam apresentar suas descobertas de maneira visualmente atraente e informativa.

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone