简体   繁体   中英

Matplotlib AttributeError when plotting multiple plots in multiple windows

I want to plot, show and save multiple plots in matplotplib . So, I used

import matplotlib.pyplot as plt

x1, y1 = [0,1,2,3], [1,2,3,4]
x2, y2 = [0,1,2,3], [1,2,3,4]
x3, y3 = [0,1,2,3], [1,2,3,4]
x4, y4 = [0,1,2,3], [1,2,3,4]
x5, y5 = [0,1,2,3], [1,2,3,4]
x6, y6 = [0,1,2,3], [1,2,3,4]

ax=plt.figure(1)
bx=plt.figure(2)
cx=plt.figure(3)
dx=plt.figure(4)
ex=plt.figure(5)
fx=plt.figure(6)
gx=plt.figure(7)

ax.axes.errorbar(x,y,yerr=std)
bx.axes.errorbar(x1,y1,yerr=std1)
cx.axes.errorbar(x2,y2,yerr=std2)
dx.axes.errorbar(x3,y3,yerr=std3)
ex.axes.errorbar(x4,y4,yerr=std4)
fx.axes.errorbar(x5,y5,yerr=std5)
gx.axes.errorbar(x6,y6,yerr=std6)

ax.figure.show(1)
bx.figure.show(2)
cx.figure.show(3)
dx.figure.show(4)
ex.figure.show(5)
fx.figure.show(6)
gx.figure.show(7)

and I got the error AttributeError: 'list' object has no attribute 'errorbar' and when I use ax.errobar instead of ax.axes.errorbar I get the error AttributeError: 'Figure' object has no attribute 'errorbar' . So, I want to know what is the problem with my code.

Thanks

Figure.axes is a list of Axes (not an instance of one, because you can have more than one Axes object for each figure). You can get at the axes by indexing into it:

ax.axes[0].errorbar(x,y,yerr=std)

Depending on your set-up, you might also have to add the axes first (eg if you get an IndexError ). The documentation for Figure has more details.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM