2015-09-17 3 views
0

Я хочу построить, показать и сохранить несколько графиков в matplotplib. Таким образом, я использовалMatplotlib AttributeError при построении нескольких графиков в нескольких окнах

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) 

и я получил ошибку AttributeError: 'list' object has no attribute 'errorbar' и когда я использую ax.errobar вместо ax.axes.errorbar я получаю ошибку AttributeError: 'Figure' object has no attribute 'errorbar' . Итак, я хочу знать, в чем проблема с моим кодом.

Благодаря

ответ

1

Figure.axes список Axes (не экземпляр одного, потому что вы можете иметь более одного Axes объекта для каждой фигуры). Вы можете получить по осям путем индексации в него:

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

В зависимости от вашей установки, вы можете также должны сначала добавить оси (например, если вы получаете IndexError). documentation for Figure имеет более подробную информацию.

+0

Спасибо. Я прочитал документацию для «Рисунок», но я не понял, как это работает для меня с помощью «fig.add_axes (ax)». – motaha

+0

Вы пытались добавить '[0]', чтобы вытащить экземпляр «Axes» из списка «axes»? –

+0

Да, я сделал, и у меня есть индекс Error, поэтому я ссылался на документацию «Рисунок» и не знал, как добавить оси, чтобы помочь или как это сделать – motaha

Смежные вопросы