2014-05-18 11 views
5

Ich versuche Nebenhandlungen zu verwenden ähnlich dem, was hier gezeigt wird:plot.subplot ---> ‚Bild‘ Objekt hat kein Attribut ‚plot‘

http://matplotlib.org/examples/pylab_examples/subplots_demo.html

axarr = plt.subplots(len(column_list), sharex=True) 
subp_num = 0 
for j in column_list: 
    axarr[subp_num].plot(df.values[2:,j]) 
    subp_num = subp_num + 1 

dann bekomme ich diese Fehler:

axarr[subp_num].plot(df.values[2:,j]) 
AttributeError: 'Figure' object has no attribute 'plot' 

Irgendein Hinweis auf was mache ich falsch? Dank

Antwort

8

Sie haben ein offensichtliches Problem: alle Beispiele in den Link, den Sie suchen bieten wie

f, axarr = plt.subplots(...) 

wo die f das ist Figure Sie anschließend behandeln, als ob es ein plot Attribut hatte. Wenn Sie mit einer beliebigen Anzahl von Nebenhandlungen arbeiten, könnten Sie tun:

axarr = plt.subplots(...) 
f, axarr = axarr[0], axarr[1:] 

Auch verwenden Sie eine while Schleife mit einem Inkrementieren Index, der auf Fehler plump und anfällig ist; benutzen Sie einfach eine for Schleife:

for j, ax in zip(column_list, axarr): 
    ax.plot(df.values[2:, j]) 
+0

Vielen Dank jonrsharp, es funktionierte nur den Zusatz "f". – user2564259