Introdução
Neste laboratório, você aprenderá como alterar a direção do eixo em um gráfico Matplotlib usando o método set_axis_direction(). Este método permite que você altere a direção de um eixo para qualquer uma das quatro direções cardinais: superior (top), inferior (bottom), esquerda (left) ou direita (right).
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 às limitações do 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ê.
Importando Bibliotecas
Primeiramente, precisamos importar as bibliotecas necessárias para este laboratório. Usaremos numpy e matplotlib.
import matplotlib.pyplot as plt
import numpy as np
Configurando o Gráfico
Em seguida, definiremos uma função setup_axes() que configurará a projeção polar em uma caixa retangular. Esta função usa GridHelperCurveLinear para criar uma projeção polar com uma caixa retangular.
from matplotlib.projections import PolarAxes
from matplotlib.transforms import Affine2D
import mpl_toolkits.axisartist as axisartist
import mpl_toolkits.axisartist.angle_helper as angle_helper
import mpl_toolkits.axisartist.grid_finder as grid_finder
from mpl_toolkits.axisartist.grid_helper_curvelinear import \
GridHelperCurveLinear
def setup_axes(fig, rect):
"""Projeção polar, mas em uma caixa retangular."""
grid_helper = GridHelperCurveLinear(
Affine2D().scale(np.pi/180., 1.) + PolarAxes.PolarTransform(),
extreme_finder=angle_helper.ExtremeFinderCycle(
20, 20,
lon_cycle=360, lat_cycle=None,
lon_minmax=None, lat_minmax=(0, np.inf),
),
grid_locator1=angle_helper.LocatorDMS(12),
grid_locator2=grid_finder.MaxNLocator(5),
tick_formatter1=angle_helper.FormatterDMS(),
)
ax = fig.add_subplot(
rect, axes_class=axisartist.Axes, grid_helper=grid_helper,
aspect=1, xlim=(-5, 12), ylim=(-5, 10))
ax.axis[:].toggle(ticklabels=False)
ax.grid(color=".9")
return ax
Adicionando Eixos Flutuantes
Definiremos duas funções que adicionarão eixos flutuantes ao nosso gráfico. A primeira função add_floating_axis1() adiciona um eixo flutuante ao gráfico com o rótulo theta = 30. A segunda função add_floating_axis2() adiciona um eixo flutuante ao gráfico com o rótulo r = 6.
def add_floating_axis1(ax):
ax.axis["lat"] = axis = ax.new_floating_axis(0, 30)
axis.label.set_text(r"$\theta = 30^{\circ}$")
axis.label.set_visible(True)
return axis
def add_floating_axis2(ax):
ax.axis["lon"] = axis = ax.new_floating_axis(1, 6)
axis.label.set_text(r"$r = 6$")
axis.label.set_visible(True)
return axis
Mudando a Direção do Eixo
Agora, criaremos um loop para configurar quatro gráficos diferentes com o eixo flutuante em cada uma das quatro direções cardinais. No loop, usaremos add_floating_axis1() e add_floating_axis2() para adicionar os eixos flutuantes, e set_axis_direction() para definir a direção do eixo.
fig = plt.figure(figsize=(8, 4), layout="constrained")
for i, d in enumerate(["bottom", "left", "top", "right"]):
ax = setup_axes(fig, rect=241+i)
axis = add_floating_axis1(ax)
axis.set_axis_direction(d)
ax.set(title=d)
for i, d in enumerate(["bottom", "left", "top", "right"]):
ax = setup_axes(fig, rect=245+i)
axis = add_floating_axis2(ax)
axis.set_axis_direction(d)
ax.set(title=d)
plt.show()
Visualizando o Gráfico
Finalmente, visualizaremos o gráfico. Podemos ver o mesmo gráfico com o eixo flutuante em cada uma das quatro direções cardinais.
Resumo
Neste laboratório, você aprendeu como mudar a direção do eixo em um gráfico Matplotlib usando o método set_axis_direction(). Ao usar este método, você pode facilmente mudar a direção de um eixo para qualquer uma das quatro direções cardinais: topo, inferior, esquerda ou direita.