Introdução
Neste laboratório, aprenderemos como usar a classe Sankey do módulo matplotlib.sankey para criar uma longa cadeia de conexões usando Python Matplotlib.
Dicas para a VM
Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.
Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.
Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.
Importar as bibliotecas e módulos necessários
Começamos importando as bibliotecas e módulos necessários. Usaremos matplotlib.pyplot e matplotlib.sankey.
import matplotlib.pyplot as plt
from matplotlib.sankey import Sankey
Definir o número de links por lado
Em seguida, definimos o número de links por lado em nossa cadeia. Neste exemplo, definiremos para 6.
links_per_side = 6
Definir a função side
Agora, definimos a função side, que gera uma cadeia lateral.
def side(sankey, n=1):
"""Generate a side chain."""
prior = len(sankey.diagrams)
for i in range(0, 2*n, 2):
sankey.add(flows=[1, -1], orientations=[-1, -1],
patchlabel=str(prior + i),
prior=prior + i - 1, connect=(1, 0), alpha=0.5)
sankey.add(flows=[1, -1], orientations=[1, 1],
patchlabel=str(prior + i + 1),
prior=prior + i, connect=(1, 0), alpha=0.5)
Definir a função corner
Em seguida, definimos a função corner, que gera um link de canto.
def corner(sankey):
"""Generate a corner link."""
prior = len(sankey.diagrams)
sankey.add(flows=[1, -1], orientations=[0, 1],
patchlabel=str(prior), facecolor='k',
prior=prior - 1, connect=(1, 0), alpha=0.5)
Criar os objetos figure e axis
Agora, criamos os objetos figure e axis usando plt.subplots().
fig, ax = plt.subplots()
Criar o objeto Sankey
Em seguida, criamos o objeto Sankey usando o objeto ax e definimos a unit como None.
sankey = Sankey(ax=ax, unit=None)
Adicionar o primeiro diagrama
Adicionamos o primeiro diagrama usando sankey.add() com flows=[1, -1] e orientations=[0, 1].
sankey.add(flows=[1, -1], orientations=[0, 1],
patchlabel="0", facecolor='k',
rotation=45)
Adicionar cadeias laterais e links de canto
Agora, adicionamos as cadeias laterais e os links de canto usando as funções side() e corner().
side(sankey, n=links_per_side)
corner(sankey)
side(sankey, n=links_per_side)
corner(sankey)
side(sankey, n=links_per_side)
corner(sankey)
side(sankey, n=links_per_side)
Finalizar e exibir o diagrama de Sankey
Finalmente, finalizamos o diagrama Sankey usando sankey.finish() e o exibimos usando plt.show().
sankey.finish()
plt.show()
Resumo
Neste laboratório, aprendemos como usar a classe Sankey do módulo matplotlib.sankey para criar uma longa cadeia de conexões usando Python Matplotlib. Definimos as funções side e corner para gerar as cadeias laterais e os links de canto, respectivamente. Também adicionamos o primeiro diagrama, as cadeias laterais e os links de canto usando o objeto Sankey e exibimos o diagrama usando plt.show().