Ich habe ein Diagramm mit zwei y-Achsen twinx()
. Ich gebe den Linien auch Beschriftungen und möchte sie mit anzeigen legend()
, aber es gelingt mir nur, die Beschriftungen einer Achse in der Legende zu erhalten:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc
rc('mathtext', default='regular')
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(time, Swdown, '-', label = 'Swdown')
ax.plot(time, Rn, '-', label = 'Rn')
ax2 = ax.twinx()
ax2.plot(time, temp, '-r', label = 'temp')
ax.legend(loc=0)
ax.grid()
ax.set_xlabel("Time (h)")
ax.set_ylabel(r"Radiation ($MJ\,m^{-2}\,d^{-1}$)")
ax2.set_ylabel(r"Temperature ($^\circ$C)")
ax2.set_ylim(0, 35)
ax.set_ylim(-20,100)
plt.show()
Ich bekomme also nur die Beschriftungen der ersten Achse in der Legende und nicht die Beschriftung 'temp' der zweiten Achse. Wie könnte ich dieses dritte Label zur Legende hinzufügen?
ax
mit dem Stil zu zeichnen, den ich verwendeax2
: in Ihr Fall ,ax.plot([], [], '-r', label = 'temp')
. Es ist viel schneller und einfacher als es richtig zu machen ...