Introdução
Matplotlib é uma biblioteca de visualização de dados em Python que oferece uma variedade de ferramentas e técnicas para criar gráficos visualmente atraentes. Às vezes, é necessário criar espaço para o rótulo do eixo y para evitar sobreposição ou truncamento do texto. Este laboratório mostrará como usar o módulo axes_grid para criar espaço para o rótulo do eixo y em 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 Bibliotecas e Criar uma Figura
O primeiro passo é importar as bibliotecas necessárias e criar uma figura. Usamos o módulo matplotlib.pyplot para criar uma figura e o módulo mpl_toolkits.axes_grid1 para criar espaço para o rótulo do eixo y.
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
from mpl_toolkits.axes_grid1.axes_divider import make_axes_area_auto_adjustable
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1])
Definir Y-Ticks e Rótulos
Nesta etapa, definimos os y-ticks e os rótulos para o eixo y. Usamos o método set_yticks para definir a localização do y-tick e o parâmetro labels para definir o rótulo para o y-tick.
ax.set_yticks([0.5], labels=["very long label"])
Criar Espaço para o Rótulo do Eixo Y
Agora, usamos o método make_axes_area_auto_adjustable para criar espaço para o rótulo do eixo y. Este método ajusta automaticamente o tamanho dos eixos para acomodar o rótulo do eixo y.
make_axes_area_auto_adjustable(ax)
Criar uma Figura com Dois Eixos
Nesta etapa, criamos uma figura com dois eixos. Usamos o método add_axes para adicionar dois eixos à figura. Também definimos o rótulo do y-tick para o primeiro eixo e o título para o segundo eixo.
fig = plt.figure()
ax1 = fig.add_axes([0, 0, 1, 0.5])
ax2 = fig.add_axes([0, 0.5, 1, 0.5])
ax1.set_yticks([0.5], labels=["very long label"])
ax1.set_ylabel("Y label")
ax2.set_title("Title")
Criar Espaço para o Rótulo do Eixo Y e Ajustar os Eixos
Nesta etapa, usamos o método make_axes_area_auto_adjustable para criar espaço para o rótulo do eixo y em ambos os eixos. Também usamos o parâmetro use_axes para especificar os eixos a serem ajustados e o parâmetro pad para ajustar o espaçamento entre os eixos.
make_axes_area_auto_adjustable(ax1, pad=0.1, use_axes=[ax1, ax2])
make_axes_area_auto_adjustable(ax2, pad=0.1, use_axes=[ax1, ax2])
Criar uma Figura com Dois Eixos Ajustáveis
Nesta etapa, criamos uma figura com dois eixos ajustáveis. Usamos o método make_axes_locatable para criar um divisor que permite que os eixos sejam ajustados. Adicionamos um novo eixo à direita do primeiro eixo usando o método append_axes.
fig = plt.figure()
ax1 = fig.add_axes([0, 0, 1, 1])
divider = make_axes_locatable(ax1)
ax2 = divider.append_axes("right", "100%", pad=0.3, sharey=ax1)
fig.add_axes(ax2)
Ajustar os Eixos e Criar Espaço para o Rótulo do Eixo Y
Nesta etapa, usamos o método add_auto_adjustable_area para ajustar os eixos e criar espaço para o rótulo do eixo y. Também definimos o título e o rótulo do eixo x para o segundo eixo.
divider.add_auto_adjustable_area(use_axes=[ax1], pad=0.1,
adjust_dirs=["left"])
divider.add_auto_adjustable_area(use_axes=[ax2], pad=0.1,
adjust_dirs=["right"])
divider.add_auto_adjustable_area(use_axes=[ax1, ax2], pad=0.1,
adjust_dirs=["top", "bottom"])
ax1.set_yticks([0.5], labels=["very long label"])
ax2.set_title("Title")
ax2.set_xlabel("X - Label")
Resumo
Este laboratório mostrou como usar o módulo axes_grid em Matplotlib para criar espaço para o rótulo do eixo y. Usamos diferentes métodos para ajustar o tamanho dos eixos e criar espaço para o rótulo do eixo y em diferentes cenários. Seguindo estas etapas, você pode criar gráficos visualmente atraentes que são fáceis de ler e entender.