2017-07-13 2 views
3

Ich habe 2 Datenrahmen. Ich möchte ein Histogramm auf der Grundlage einer Spalte "Rate" für jeden, Seite an Seite, plotten. Wie es geht?Wie man 2 Histogramme nebeneinander aufträgt?

Ich versuchte dies:

import matplotlib.pyplot as plt 
plt.subplot(1,2,1) 

dflux.hist('rate' , bins=100) 
plt.subplot(1,2,2) 
dflux2.hist('rate' , bins=100) 
plt.tight_layout() 
plt.show() 

Es ist nicht die gewünschte Wirkung hat. Es zeigte zwei leere Diagramme und dann ein bestücktes Diagramm.

Antwort

4

Verwenden Sie subplots, um eine Figur mit zwei Achsen zu definieren. Geben Sie dann die zu plotende Achse mit dem Parameter ax innerhalb von hist an.

fig, axes = plt.subplots(1, 2) 

dflux.hist('rate', bins=100, ax=axes[0]) 
dflux2.hist('rate', bins=100, ax=axes[1]) 

Demo

dflux = pd.DataFrame(dict(rate=np.random.randn(10000))) 
dflux2 = pd.DataFrame(dict(rate=np.random.randn(10000))) 

fig, axes = plt.subplots(1, 2) 

dflux.hist('rate', bins=100, ax=axes[0]) 
dflux2.hist('rate', bins=100, ax=axes[1]) 

enter image description here

+0

Es hat funktioniert! Ich habe auch festgestellt, dass ich einen Titel für jedes einzelne tun soll: 'axes [0] .set_title ('link title')' und dann 'axes [1] .set_title ('right title')' –

+0

@MarkGinsburg kannst du auch einstellen titel mit dem titelparameter im Aufruf von hist – piRSquared

+0

Ich habe versucht dies 'dflux2.hist ('Rate', bins = 100, ax = Achsen [1], title = 'König')' aber Syntaxfehler, es sagt 'Unbekannte Eigenschaft title' –

Verwandte Themen