Como adicionar uma etiqueta do eixo Y ao eixo Y secundário em Matplotlib

  1. Interação direta com o objeto axes
  2. DataFrame.plot Método para adicionar uma etiqueta do eixo Y ao eixo Y secundário

Podemos interagir com o objeto axes diretamente ou utilizar o método DataFrame.plot para adicionar uma etiqueta do eixo y ao eixo y secundário em Matplotlib.

Interação direta com o objeto axes

Podemos fazer um enredo com dois eixos y diferentes utilizando dois objetos axes diferentes com a ajuda da função twinx(). Agora podemos utilizar o segundo objeto axes para fazer o gráfico do segundo eixo y variável e atualizar sua etiqueta.

import numpy as np
import matplotlib.pyplot as plt

a=np.linspace(0,5,100)

y1 = np.sin(2 * np.pi * a)
y2 = np.cos(2 * np.pi * a)

fig, ax1 = plt.subplots()

ax1.set_xlabel('time (s)')
ax1.set_ylabel('sin', color='red')
ax1.plot(a, y1, color=color)
ax1.tick_params(axis='y', labelcolor=color)

ax2 = ax1.twinx()  
ax2.set_ylabel('cos', color='green')  
ax2.plot(a, y2, color=color)
ax2.tick_params(axis='y', labelcolor=color)

fig.tight_layout()
plt.show()

Resultado:

interação direta com os eixos para adicionar uma etiqueta do eixo y ao objeto do eixo y secundário

ax2 = ax1.twinx()

O Axes.twinx() cria um novo eixo duplo com um eixo y oposto ao eixo original, neste exemplo, o eixo 1.

DataFrame.plot Método para adicionar uma etiqueta do eixo Y ao eixo Y secundário

Podemos adicionar uma etiqueta do eixo y ao eixo y secundário com pandas também. Quando definimos a opção secondary_y para ser True no método DataFrame.plot, ela retorna diferentes eixos que podem ser utilizados para definir as etiquetas.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'Age': [22, 12, 18, 25, 30],
                   'Height': [155,129,138,164,145],
                   'Weight': [60,40,45,55,60]})
ax=df.plot(kind='line', x='Age', y='Height', color='DarkBlue')

ax2=df.plot(kind='line', x='Age', y='Weight', secondary_y=True,color='Red', ax=ax)

ax.set_ylabel('Height')
ax2.set_ylabel('Weight')
plt.tight_layout()
plt.show()

Resultado:

Método DataFrame.plot para adicionar uma etiqueta do eixo y ao eixo y secundário

Artigo relacionado - Matplotlib Axes

  • Definir valores do eixo X em Matplotlib
  • Diferenças entre cla(), clf() e close() Métodos em Matplotlib