Dicas
Carregando, aguarde alguns segundos.

2 - DICA CIEDA #002 Empacotamento Circular

Vamos agrupar "bolhas" em um gráfico sem área de sobreposição.

A embalagem circular é uma boa ideia para traçar bolhas economizando espaço.

Precisamos calcular a posição e o tamanho de cada bolha.

O pacote circlify realiza este cálculo.

Instale o pacote circlify com o PIP:

pip install circlify

Uma desvantagem do empacotamento circular é que é difícil descobrir a diferença entre bolhas que têm tamanhos próximos.

Isso pode ser resolvido rotulando cada bolha com seu valor.

Analise o código observando o gráfico produzido.

Rode o código no programa-interpretador do Python ou no Jupyter-Lab e veja o gráfico gerado.

Baixe o arquivo-csv de países aqui

import matplotlib.pyplot as plt
import pandas as pd
import circlify as cfy
#
def selecionar_cor(name, number):
    import seaborn as sns
    pal = list(sns.color_palette(palette=name, n_colors=number).as_hex())
    return pal
#
df = pd.read_csv("dados_paises.csv",encoding="UTF-8")
df_len = len(df)
#
pal_vi = selecionar_cor("viridis_r",df_len)
#
df_s = df.sort_values(by="Emissão",ascending=False)
df_s.head(9)
#
# Calcular as posições dos círculos:
#
circulos = cfy.circlify(
    df_s["Emissão"].tolist(), 
    show_enclosure=False, 
    target_enclosure=cfy.Circle(x=0, y=0))
#
circulos.reverse()
#
fig, ax = plt.subplots(figsize=(14, 14), facecolor="white")
ax.axis("off")
lim = max(max(abs(circulo.x)+circulo.r, abs(circulo.y)+circulo.r,) for circulo in circulos)
plt.xlim(-lim, lim)
plt.ylim(-lim, lim)
#
# imprimir círculos
#
for circulo, rotulo, emi, cor in zip(circulos, df_s["País"], df_s["Emissão"], pal_vi):
    x, y, r = circulo
    ax.add_patch(plt.Circle((x, y), r, alpha=0.9, color = cor))
    plt.annotate(rotulo +"\n"+ format(emi, ","), (x,y), size=15, va="center", ha="center")
#
plt.xticks([])
plt.yticks([])
#
plt.show()
Arduino
Coautor
Betobyte
Autor
Autores
||| Áreas ||| Estatística ||| Python ||| Projetos ||| Dicas & Truques ||| Quantum ||| Dicas || Dicas || Aulas | #001 (Diagrama do Gráfico) | #002 (Gráfico de Bolhas) | #003 (Gráfico de Barras Coloridas) | #004 (Gráfico de Barras Circulares) |