Matplotlib
Carregando, aguarde alguns segundos.

8 - Classificações

8.1 - Gráfico de Barras

Um gráfico de barras mostra a relação entre uma variável numérica e uma variável categórica.

Cada entidade da variável categórica é representada como uma barra. O tamanho da barra representa seu valor numérico.

Esta seção mostra como construir um gráfico de barras com a função bar do módulo Matplotlib do Python.

import numpy as np
import matplotlib.pyplot as plt
height = [3, 12, 5, 18, 45]
bars = ('A', 'B', 'C', 'D', 'E')
y_pos = np.arange(len(bars))
plt.bar(y_pos, height)
plt.xticks(y_pos, bars)
plt.show()

8.2 - Gráfico Aranha/Radar

Um gráfico de Aranha/Radar exibe o valor de várias variáveis ​​numéricas para uma ou várias entidades.

O objetivo é demonstrar como desenhar um gráfico de radar básico usando as funções básicas do matplotlib.

O exemplo simples abaixo exibe os valores de 5 variáveis ​​para apenas um indivíduo.

Os dados de entrada são um quadro de dados de pandas onde cada linha representa um indivíduo e cada coluna uma variável.

import matplotlib.pyplot as plt
import pandas as pd
from math import pi

df = pd.DataFrame({
    'group': ['A','B','C','D'],
    'var1': [38, 1.5, 30, 4],
    'var2': [29, 10, 9, 34],
    'var3': [8, 39, 23, 24],
    'var4': [7, 31, 33, 14],
    'var5': [28, 15, 32, 14]
})

# número de variáveis

categories=list(df)[1:]
N = len(categories)
 
# Estamos prestes a plotar a primeira linha do quadro de dados.
# Mas precisamos repetir o primeiro valor para fechar o gráfico circular:

valores=df.loc[0].drop('group').values.flatten().tolist()
valores += valores[:1]
valores
 
# O que será o ângulo de cada eixo no gráfico? (dividimos o gráfico / número de variável)

angulos = [n for n in range(N)]
for i in range(N): angulos[i] = angulos[i] / float(N) * 2 * pi
angulos += angulos[:1]

# Inicializar o gráfico de aranha.
# O eixo polar é criado, mas não é desenhado (por isso, não é visível).

ax = plt.subplot(111, polar=True)
 
# Desenhar um eixo por variável + adicionar rótulos

plt.xticks(angulos[:-1], categories, color='darkblue', size=24)
 
# Desenhar rótulos de eixo y, mas não adicionar rótulos de eixo y (0, 10, 20, 30)

ax.set_rlabel_position(0)
plt.yticks([10,20,30], ["10","20","30"], color="grey", size=18)
plt.ylim(0,40)

# Plotar os dados.
# O parâmetro 'angulos' define os ângulos em que os pontos serão plotados.
# O parâmetro 'valores' define os valores para cada ângulo.
# O parâmetro 'linewidth' define a largura da linha.
# O parâmetro 'linestyle' define o estilo da linha ('solid', 'dashed', 'dashdot', 'dotted').

ax.plot(angulos, valores, linewidth=1, linestyle='solid')
 
# Preencher a área entre a linha e o eixo.

ax.fill(angulos, valores, 'b', alpha=0.1)

# mostrar o gráfico

plt.show()

8.3 - Nuvem de Palavras

A biblioteca wordcloud está aqui para ajudá-lo a construir uma nuvem de palavras em minutos.

Para instalar a biblioteca, execute no seu terminal o comando:

pip install wordcloud

Aqui estão alguns trechos de código básicos usando a função WordCloud() para você começar. 🔥

from wordcloud import WordCloud
import matplotlib.pyplot as plt
text=("Cieda Cieda Cieda Cieda Cieda Multicieda Multicieda Python Python Python Matplotlib")
wordcloud = WordCloud(width=480, height=480, margin=0).generate(text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.margins(x=0, y=0)
plt.show()

8.4 - Gráfico de Coordenadas Paralelas

Um gráfico de coordenadas paralelas permite a comparação das características de várias observações individuais (séries) em um conjunto de variáveis ​​numéricas.

A função parallel_coordinates() do Pandas é, provavelmente, a melhor maneira de traçar um gráfico de coordenadas paralelas com Python.

Plotly é uma boa alternativa para plotar versões interativas.

import pandas
import matplotlib.pyplot as plt
from pandas.plotting import parallel_coordinates
import seaborn as sns
data = sns.load_dataset('iris')
parallel_coordinates(data, 'species', colormap=plt.get_cmap("Set2"))
plt.show()

8.5 - Gráfico de Pirulito

Um gráfico de pirulito é uma alternativa ao gráfico de barras mais usual.

O Python permite construir gráficos de pirulito com à biblioteca matplotlib, como no exemplo abaixo.

A estratégia aqui é usar a função stem() ou hackear a função vline() dependendo do seu formato de entrada.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({
    'grupo': list(map(chr, range(65, 85))),
    'valores': np.random.uniform(size=20)
})
ordered_df = df.sort_values(by='valores')
my_range = range(1,len(df.index)+1)
plt.stem(ordered_df['valores'])
plt.xticks( my_range, ordered_df['grupo'])
plt.show()
Arduino
Coautor
Betobyte
Autor
Autores
||| Áreas ||| Estatística ||| Python ||| Projetos ||| Dicas & Truques ||| Quantum ||| Matplotlib || Python para Iniciantes || Python Básico || Matplotlib || Numpy || Seaborn || Pandas || Django || Estatística para Cientistas de Dados || Python com ML Básico || Python com ML Básico || Aulas | Introdução (introdução, pyplot, plotagem, pacotes complementares) | Gráficos básicos (barra, pizza, linhas, pontos) | Customizações (cores, linhas, marcadores) | Gráficos elaborados (pista, radial, bolhas) | Distribuições (violino, densidade, histograma, caixa, cumeeira) | Correlações (dispersão, calor, correlograma, bolha, dispersão conectada, densidade 2d) | Partições (árvore, venn, rosca, pizza, dentrograma, empacotamento circular) | Classificações (barras, radar, nuvem de palavras, paralelas, pirulito, barras circulares) | Galeria (Gráfico de dispersão 3D, GD 3D com autovetores, Cubo 3D, Distribuição Gaussiana Multivariada com superfície colorida, DGM como grade de malha, Gráfico de Barras Vertical com barras de erro, GB horizontal com barras de erro, GB back-to-back, GB agrupadas, GB empilhadas, GB com rótulos, GB com rotação, GB com gradiente de cores, preenchimento de padrão, Gráficos de Caixa (boxplot), GC preta e branca, GC, horizontal, GC cheia, GC personalizadas, GC e barra de violinos, GC simples, subplots, cores, eixo estético, rótulos personalizados, linhas de grade, folhas de estilos, mapas de calor, de cores, histogramas, e mais.) |