Анимированный график для гистограммы и линейного графика с использованием субплота Python - PullRequest
0 голосов
/ 12 февраля 2019

Мне удалось построить анимированные графики, используя советы по ссылке ниже.

matplotlib animation множественные наборы данных

И мой код здесь.

tt = time_hr.values[:,0] 
yy1 =data1.values[:,0]
yy2 =data2.values[:,0]

fig, ax = plt.subplots()

line1, = ax.plot(tt, yy1, color='k')
line2, = ax.plot(tt, yy2, color='r')

def update(num, tt, yy1, yy2, line1, line2):
   line1.set_data(tt[:num], yy1[:num])
   line1.axes.axis([0, 1, 0, 2500])

   line2.set_data(tt[:num], yy2[:num])
   line2.axes.axis([0, 1, 0, 2500])

   return line1,line2

ani = animation.FuncAnimation(fig, update, len(time_hr), fargs=[tt, yy1, yy2, line1,line2],interval=25, blit=True)
plt.show()

У меня также есть другие данные для гистограммы, и я создал анимированную гистограмму с помощью приведенного ниже кода.

x_pos = np.arange(95)
fig = plt.figure()
ax = plt.axis((-1,96,0,1000))
def animate(i):
   plt.clf()
   pic = plt.bar(x_pos, data3.iloc[i,:], color='c')
   plt.axis((-1,96,0,1000))
   return pic,
ani = animation.FuncAnimation(fig, animate, interval=25, repeat=False)
plt.show()

Моя конечная цель - построить как анимированную гистограмму, так и линейный график.на одном рисунке с использованием функции подзаговора, чтобы гистограмма была (1,1), а линейный график - в (2,1) положении фигуры.

Может ли кто-нибудь помочь мне создать анимированные гистограммы и линейные графики в одном окне рисунка в Python?В частности, как объединить линейные графики и гистограмму в одной функции анимации?

Основываясь на комментариях ниже, я изменил код следующим образом.

x_pos = np.arange(95)
tt = time_hr.values[:,0] 
yy1 =data1.values[:,0]
yy2 =data2.values[:,0]

fig, (ax1, ax2) = plt.subplots(nrows=2)
line1, = ax2.plot(tt, yy1, color='k')
line2, = ax2.plot(tt, yy2, color='r')
rects = ax1.bar(x_pos, data3.iloc[0,:], color='c')

def update(num, tt, yy1, yy2, x_pos, data3, line1, line2, rects):
    line1.set_data(tt[:num], yy1[:num])
    line1.axes.axis([0, 1, 0, 2500])

    line2.set_data(tt[:num], yy2[:num])
    line2.axes.axis([0, 1, 0, 2500])

    ax1.clear()
    rects= ax1.bar(x_pos, data3.iloc[num,:], color='c')
    ax1.axis((-1,96,0,1000))

    return line1,line2, rects

ani = animation.FuncAnimation(fig, update, len(time_hr), fargs=[tt, yy1, yy2, x_pos,data3, line1,line2,rects], interval=25, blit=True)

plt.show()

Но я получил сообщение об ошибке вродеэтот.«AttributeError: у объекта« BarContainer »нет атрибута« set_animated »»

Не могли бы вы помочь мне Как исправить эту ошибку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...