Ich versuche, eine einzelne Zeitreihe zu plotten, aber möchte es in zwei Einheiten auf der linken und rechten Achse darstellen. Hier ist, was ich bisher gemacht habe.Einzelne Daten mit zwei Y-Achsen (zwei Einheiten) in Matplotlib plotten
fig, ax1 = plt.subplots()
t = np.arange(1,50,1)
s1 = np.sin(t)*20000+40000 #synthetic ts, but closer to my data
ax1.plot(t, s1, 'b-')
ax1.set_xlabel('time')
ax1.set_ylim(20000,70000)
ax1.set_ylabel('km3/year')
km3yearToSv=31.6887646*(1/1e6)
ax2 = ax1.twinx()
s2 = s1*km3yearToSv
ax2.plot(t, s2, 'b-')
ax2.set_ylim(20000*km3yearToSv,70000*km3yearToSv)
ax2.set_ylabel('Sv')
Durch die ylim Einstellung(), kann ich es als eine einzige Zeile zu erscheinen, aber einige Aliasing zu sehen ist. Ich würde es vorziehen, wenn ich die Daten nicht zweimal auftragen müsste.
Irgendwelche Vorschläge?
UPDATE: Danke, askewchan, für die perfekte Lösung!
Kannst du dein ganzes Skript einbeziehen? – Leb