Introdução
No Matplotlib, a posição dos eixos (spines) pode ser ajustada para personalizar a aparência de um gráfico. Este laboratório irá guiá-lo através do processo de ajuste das posições dos eixos no 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 necessárias
Nesta etapa, importaremos as bibliotecas necessárias para criar nossos gráficos.
import matplotlib.pyplot as plt
import numpy as np
Criar um gráfico básico
Nesta etapa, criaremos um gráfico básico para demonstrar as diferentes opções de posicionamento dos eixos (spines) no Matplotlib.
x = np.linspace(0, 2*np.pi, 100)
y = 2 * np.sin(x)
fig, ax_dict = plt.subplot_mosaic(
[['center', 'zero'],
['axes', 'data']]
)
fig.suptitle('Posições dos eixos (Spine positions)')
ax = ax_dict['center']
ax.set_title("'center'")
ax.plot(x, y)
ax.spines[['left', 'bottom']].set_position('center')
ax.spines[['top', 'right']].set_visible(False)
ax = ax_dict['zero']
ax.set_title("'zero'")
ax.plot(x, y)
ax.spines[['left', 'bottom']].set_position('zero')
ax.spines[['top', 'right']].set_visible(False)
ax = ax_dict['axes']
ax.set_title("'axes' (0.2, 0.2)")
ax.plot(x, y)
ax.spines.left.set_position(('axes', 0.2))
ax.spines.bottom.set_position(('axes', 0.2))
ax.spines[['top', 'right']].set_visible(False)
ax = ax_dict['data']
ax.set_title("'data' (1, 2)")
ax.plot(x, y)
ax.spines.left.set_position(('data', 1))
ax.spines.bottom.set_position(('data', 2))
ax.spines[['top', 'right']].set_visible(False)
Definir um método para ajustar as localizações dos eixos (spines)
Nesta etapa, definiremos um método que ajusta a localização dos eixos (spines) com base nas localizações especificadas.
def adjust_spines(ax, spines):
"""
Ajusta a localização dos eixos (spines) com base nas localizações especificadas.
Parâmetros:
ax (Axes): O objeto Axes do Matplotlib para ajustar os eixos (spines).
spines (lista de str): As localizações desejadas dos eixos (spines). Opções válidas são 'left', 'right', 'top', 'bottom'.
Retorna:
None
"""
for loc, spine in ax.spines.items():
if loc in spines:
spine.set_position(('outward', 10)) ## move the spine outward by 10 points
else:
spine.set_color('none') ## don't draw the spine
## turn off ticks where there is no spine
if 'left' in spines:
ax.yaxis.set_ticks_position('left')
else:
ax.yaxis.set_ticks([])
if 'bottom' in spines:
ax.xaxis.set_ticks_position('bottom')
else:
ax.xaxis.set_ticks([])
Criar um gráfico usando o método adjust_spines
Nesta etapa, criaremos um gráfico usando o método adjust_spines para demonstrar como ajustar as localizações dos eixos (spines).
fig = plt.figure()
x = np.linspace(0, 2 * np.pi, 100)
y = 2 * np.sin(x)
ax = fig.add_subplot(2, 2, 1)
ax.plot(x, y, clip_on=False)
adjust_spines(ax, ['left'])
ax = fig.add_subplot(2, 2, 2)
ax.plot(x, y, clip_on=False)
adjust_spines(ax, [])
ax = fig.add_subplot(2, 2, 3)
ax.plot(x, y, clip_on=False)
adjust_spines(ax, ['left', 'bottom'])
ax = fig.add_subplot(2, 2, 4)
ax.plot(x, y, clip_on=False)
adjust_spines(ax, ['bottom'])
plt.show()
Resumo
Neste laboratório, aprendemos como ajustar as posições dos eixos (spines) no Matplotlib, definindo a posição dos eixos (spines) usando o método set_position e como definir um método para ajustar as localizações dos eixos (spines) com base nas localizações desejadas. Isso pode ser útil para personalizar a aparência dos gráficos e destacar recursos específicos.