Hinzufügen einer y-Achsenbeschriftung zur sekundären y-Achse in Matplotlib

  1. Direkte Interaktion mit dem axes Objekt
  2. DataFrame.plot-Methode zum Hinzufügen einer y-Achsenbeschriftung zur sekundären y-Achse

Wir können direkt mit dem Achsen-Objekt interagieren oder die DataFrame.plot-Methode verwenden, um der sekundären y-Achse in Matplotlib eine y-Achsenbeschriftung hinzuzufügen.

Direkte Interaktion mit dem axes Objekt

Wir können einen Plot mit zwei verschiedenen y-Achsen erstellen, indem wir zwei verschiedene Axes-Objekte mit Hilfe der twinx() Funktion verwenden. Jetzt können wir das zweite Axes-Objekt verwenden, um die Darstellung der zweiten y-Achse variabel zu machen und ihre Beschriftung zu aktualisieren.

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()

Ausgabe:

direkte Interaktion mit Achsen, um ein y-Achsen-Label zum sekundären y-Achsen-Objekt hinzuzufügen

ax2 = ax1.twinx()

Axes.twinx() erzeugt eine neue Axis mit einer y-Achse, die der ursprünglichen Achse entgegengesetzt ist, in diesem Beispiel ax1.

DataFrame.plot-Methode zum Hinzufügen einer y-Achsenbeschriftung zur sekundären y-Achse

Wir können der sekundären y-Achse mit Pandas auch eine y-Achsenbeschriftung hinzufügen. Wenn wir die Option secondary_y in der Methode DataFrame.plot auf True setzen, gibt sie verschiedene Achsen zurück, die zum Setzen der Beschriftungen verwendet werden können.

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()

Ausgabe:

DataFrame.plot-Methode zum Hinzufügen einer y-Achsenbeschriftung zur sekundären y-Achse

comments powered by Disqus