2017-02-28 1 views
0

Wie ich mit dem Matplotlib Dokument und anderen resources überprüft. Ich habe das, wenn mehrere Achsen erstellt wurden, sind sie nicht voneinander abhängig und wir können die multiple Linie nach verschiedenen Achsen plotten. Aber ich muss den Graphen wie zwei Y-Achse mit der Temperatur als (Celsius und Fahrenheit) grafisch darstellen und nur eine einzige Zeile damit in Verbindung bringen, so dass 1. Achse Benutzer Celsius und 2. Achse Fahrenheit überprüfen können. mit x-Achse als Bereich (1 bis 24 Stunden).Graph mit mehreren X-und Y-Achse mit Matplotlib

Vorschläge sind sehr willkommen.

Antwort

2

Verwendung twinx() zwei Achsen zu zeigen, und die y_limits von ax1 in Celsius zu y_limits von ax2 in Fahrenheit konvertieren:

import matplotlib.pyplot as plt 
from random import randint 

x = range(1,24) 
y = [randint(0,75) for x in x] 

fig, ax1 = plt.subplots() 

ax1.plot(x,y) 
y_lim = ax1.get_ylim() 

y2_lim = [x*9/5 + 32 for x in y_lim] 

ax2 = ax1.twinx() 
ax2.set_ylim(y2_lim) 

ax1.set_ylabel('deg C') 
ax2.set_ylabel('deg F') 

plt.show() 

enter image description here

+0

Vielen Dank für die Führung, aber während ich dies tun, macht es die 1. Y-Achse zu der statischen, so dass, wenn ich in der Grafik vergrößern die Messung nicht ändert, ist das, dass jede Funktion oder Bibliothek, die dafür verwenden müssen. –

+0

Die Art und Weise, wie Sie die plt.show() erstellt haben, funktioniert nicht mit der mpld3.show(). Ich muss das Diagramm auf der Webseite grafisch darstellen. –

+0

scheint ein bekannter [Bug] zu sein (https://github.com/mpld3/mpld3/issues/188) – Crispin