2016-08-23 3 views
0

Я изучаю, как анимировать в python для одного из моих проектов, и я основываю свой код на следующем примере от here.Python FuncAnimation не распознает обновление

Моя адаптация их кода происходит следующим образом:

import numpy as np 
import h5py, os, glob, sys, time 
import matplotlib as mpl 
mpl.use('Agg') 
import matplotlib.pyplot as plt 
from matplotlib.animation import FuncAnimation 

def update(i): 
    for j in np.arange(0,10): 
     for k in np.arange(0,10): 
      for channel in ["N","E"]: 
       x = some_x_value 
       y = some_y_value 
       line = plt.loglog(x,y) 
       ax.set_xlabel(label) 
    return line, ax 


if __name__ == "__main__": 
    fig, ax = plt.subplots() 
    anim = FuncAnimation(fig, update, frames=np.arange(0,10), interval=200) 
    anim.save('Test.gif', dpi=80, writer='imagemagick') 

И когда я пытаюсь запустить мой сценарий, я получаю следующее сообщение об ошибке: Name Error: название «обновление» не определен.

Как я уже говорил, я все еще учу, как оживить и не понимаю все, что происходит в учебнике по коду, который я нашел. Тем не менее, я очень смущен, почему обновление вообще не распознается, поскольку способ, которым я называю обновление, кажется, точно такой же, как в учебнике.

+0

Там есть куча других неопределенных имен (например, 'ssPlot'). – tacaswell

+0

@tcaswell Я не публиковал все мои определенные функции, потому что я не хотел загромождать свой вопрос, но материал, подобный ssPlot, уже определен для меня в другом месте и ранее работал нормально. Это обновление только сейчас, когда возвращается ошибка имени. – ICantHandleThis

+0

Можете ли вы уменьшить свой пример до кода, который демонстрирует проблему, о которой вы просите? – tacaswell

ответ

0
import numpy as np 
import matplotlib as mpl 
mpl.use('Agg') 
import matplotlib.pyplot as plt 
from matplotlib.animation import FuncAnimation 


def update(i, ln): 
    i = i+1 
    x = i 
    y = i ** 2 
    x_data = ln.get_xdata() 
    y_data = ln.get_ydata() 
    ln.set_data(np.concatenate(([x], x_data)), 
       np.concatenate(([y], y_data))) 
    return ln 


if __name__ == "__main__": 
    fig, ax = plt.subplots() 
    ax.set_xlim(1, 10) 
    ax.set_ylim(1, 100) 
    line, = ax.loglog([1], [1]) 
    anim = FuncAnimation(fig, update, frames=np.arange(0, 10), interval=200, 
         fargs=(line,)) 
    anim.save('Test.gif', dpi=80, writer='imagemagick') 

Работы как и ожидалось. Это заставляет меня думать, что в вашем коде есть какая-то другая ошибка, которая маскируется.

+0

Я успешно воссоздал пример учебника, но мне все еще не удается получить реальный код для анимации. Я вернусь к своему коду и попытаюсь изменить его, шаг за шагом. Спасибо, что заглянул в мою проблему. – ICantHandleThis

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