Introdução
Matplotlib é uma poderosa biblioteca de plotagem em Python. Ela oferece uma variedade de visualizações personalizáveis, como gráficos de linhas, gráficos de dispersão, gráficos de barras, histogramas e muito mais. Uma das visualizações que o Matplotlib oferece é o Arrow Plot (gráfico de setas). Os gráficos de setas são usados para codificar a "força" das setas, como probabilidades de transição em um modelo de Markov, usando o comprimento, a largura ou o alfa (opacidade) das setas.
Neste laboratório, aprenderemos como criar gráficos de setas usando Matplotlib. Usaremos a função make_arrow_graph() para plotar o gráfico de setas.
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 Bibliotecas e Definir a Função
O primeiro passo é importar as bibliotecas necessárias e definir a função make_arrow_graph(). Esta função recebe vários parâmetros, como os eixos, dados, tamanho, exibição, forma, max_arrow_width, arrow_sep, alfa, normalize_data, ec, labelcolor e kwargs. Ela usa esses parâmetros para criar um gráfico de setas.
## Import libraries
import itertools
import matplotlib.pyplot as plt
import numpy as np
## Define the function
def make_arrow_graph(ax, data, size=4, display='length', shape='right',
max_arrow_width=0.03, arrow_sep=0.02, alpha=0.5,
normalize_data=False, ec=None, labelcolor=None,
**kwargs):
"""
Makes an arrow plot.
Parameters
----------
ax
The axes where the graph is drawn.
data
Dict with probabilities for the bases and pair transitions.
size
Size of the plot, in inches.
display : {'length', 'width', 'alpha'}
The arrow property to change.
shape : {'full', 'left', 'right'}
For full or half arrows.
max_arrow_width : float
Maximum width of an arrow, in data coordinates.
arrow_sep : float
Separation between arrows in a pair, in data coordinates.
alpha : float
Maximum opacity of arrows.
**kwargs
`.FancyArrow` properties, e.g. *linewidth* or *edgecolor*.
"""
## code block
Definir os Dados e Plotar o Gráfico de Setas
O segundo passo é definir os dados e plotar o gráfico de setas usando a função make_arrow_graph(). Definiremos os dados como um dicionário com probabilidades para as bases e transições de pares. Também definiremos o tamanho do gráfico como 4 e normalizaremos os dados.
## Define the data
data = {
'A': 0.4, 'T': 0.3, 'G': 0.6, 'C': 0.2,
'AT': 0.4, 'AC': 0.3, 'AG': 0.2,
'TA': 0.2, 'TC': 0.3, 'TG': 0.4,
'CT': 0.2, 'CG': 0.3, 'CA': 0.2,
'GA': 0.1, 'GT': 0.4, 'GC': 0.1,
}
## Plot the arrow graph
size = 4
fig = plt.figure(figsize=(3 * size, size), layout="constrained")
axs = fig.subplot_mosaic([["length", "width", "alpha"]])
for display, ax in axs.items():
make_arrow_graph(
ax, data, display=display, linewidth=0.001, edgecolor=None,
normalize_data=True, size=size)
plt.show()
Personalizar o Gráfico de Setas
O terceiro passo é personalizar o gráfico de setas. Podemos alterar a propriedade da seta a ser exibida usando o parâmetro display. Também podemos alterar a forma da seta usando o parâmetro shape. Podemos ajustar a largura e a separação das setas usando os parâmetros max_arrow_width e arrow_sep, respectivamente. Podemos alterar a transparência das setas usando o parâmetro alpha. Também podemos alterar a cor do rótulo usando o parâmetro labelcolor.
## Plot the arrow graph with customizations
size = 4
fig = plt.figure(figsize=(3 * size, size), layout="constrained")
axs = fig.subplot_mosaic([["length", "width", "alpha"]])
for display, ax in axs.items():
make_arrow_graph(
ax, data, display=display, linewidth=0.001, edgecolor=None,
normalize_data=True, size=size, shape='full', max_arrow_width=0.05,
arrow_sep=0.03, alpha=0.7, labelcolor='white')
plt.show()
Interpretar o Gráfico de Setas
O quarto passo é interpretar o gráfico de setas. O comprimento, a largura e a opacidade das setas representam a força da seta. O gráfico de setas pode ser usado para codificar a "força" da seta, como as probabilidades de transição em um modelo de Markov, usando o comprimento, a largura ou o alfa (opacidade) da seta. Os rótulos nas setas representam as probabilidades para as bases e as transições de pares.
Resumo
Neste laboratório, aprendemos como criar gráficos de setas usando Matplotlib. Usamos a função make_arrow_graph() para plotar o gráfico de setas. Personalizamos o gráfico de setas alterando a propriedade da seta a ser exibida, alterando a forma da seta, ajustando a largura e a separação das setas, alterando a transparência das setas e alterando a cor do rótulo. Também interpretamos o gráfico de setas, entendendo que o comprimento, a largura e a opacidade das setas representam a força da seta, e os rótulos nas setas representam as probabilidades para as bases e as transições de pares.