Передача аргументов в анимации. FuncAnimation ()

Как передать аргументы функции anim ()? , Я пробовал, но сработал. прототип анимации. FuncAnimation () является

class matplotlib.animation.FuncAnimation (fig, func, frames = None, init_func = None, fargs = None, save_count = None, ** kwargs) Базы: matplotlib.animation.TimedAnimation

Я наклеил код ниже, какие изменения мне нужно сделать?

import matplotlib.pyplot as plt import matplotlib.animation as animation def animate(i,argu): print argu graph_data = open('example.txt','r').read() lines = graph_data.split('\n') xs = [] ys = [] for line in lines: if len(line) > 1: x, y = line.split(',') xs.append(x) ys.append(y) ax1.clear() ax1.plot(xs, ys) plt.grid() ani = animation.FuncAnimation(fig,animate,fargs = 5,interval = 100) plt.show() 

Проверьте этот простой пример:

 # -*- coding: utf-8 -*- import matplotlib.pyplot as plt import matplotlib.animation as animation import numpy as np data = np.loadtxt("example.txt", delimiter=",") x = data[:,0] y = data[:,1] fig = plt.figure() ax = fig.add_subplot(111) line, = ax.plot([],[], '-') line2, = ax.plot([],[],'--') ax.set_xlim(np.min(x), np.max(x)) ax.set_ylim(np.min(y), np.max(y)) def animate(i,factor): line.set_xdata(x[:i]) line.set_ydata(y[:i]) line2.set_xdata(x[:i]) line2.set_ydata(factor*y[:i]) return line,line2 K = 0.75 # any factor ani = animation.FuncAnimation(fig, animate, frames=len(x), fargs=(K,), interval=100, blit=True) plt.show() 

Во-первых, для обработки данных рекомендуется использовать NumPy, это самые простые данные для чтения и записи.

Не обязательно, чтобы вы использовали функцию «plot» на каждом шаге анимации, вместо этого используйте методы set_xdata и set_ydata для данных обновления.

Также рассматриваются примеры документации Matplotlib: http://matplotlib.org/1.4.1/examples/animation/ .

Я думаю, что вы в значительной степени там, следующее несколько незначительных трюков, в основном вам нужно определить фигуру, использовать дескриптор оси и поставить fargs внутри списка,

 import matplotlib.pyplot as plt import matplotlib.animation as animation fig, ax1 = plt.subplots(1,1) def animate(i,argu): print(i, argu) #graph_data = open('example.txt','r').read() graph_data = "1, 1 \n 2, 4 \n 3, 9 \n 4, 16 \n" lines = graph_data.split('\n') xs = [] ys = [] for line in lines: if len(line) > 1: x, y = line.split(',') xs.append(float(x)) ys.append(float(y)+np.sin(2.*np.pi*i/10)) ax1.clear() ax1.plot(xs, ys) plt.grid() ani = animation.FuncAnimation(fig, animate, fargs=[5],interval = 100) plt.show() с import matplotlib.pyplot as plt import matplotlib.animation as animation fig, ax1 = plt.subplots(1,1) def animate(i,argu): print(i, argu) #graph_data = open('example.txt','r').read() graph_data = "1, 1 \n 2, 4 \n 3, 9 \n 4, 16 \n" lines = graph_data.split('\n') xs = [] ys = [] for line in lines: if len(line) > 1: x, y = line.split(',') xs.append(float(x)) ys.append(float(y)+np.sin(2.*np.pi*i/10)) ax1.clear() ax1.plot(xs, ys) plt.grid() ani = animation.FuncAnimation(fig, animate, fargs=[5],interval = 100) plt.show() с import matplotlib.pyplot as plt import matplotlib.animation as animation fig, ax1 = plt.subplots(1,1) def animate(i,argu): print(i, argu) #graph_data = open('example.txt','r').read() graph_data = "1, 1 \n 2, 4 \n 3, 9 \n 4, 16 \n" lines = graph_data.split('\n') xs = [] ys = [] for line in lines: if len(line) > 1: x, y = line.split(',') xs.append(float(x)) ys.append(float(y)+np.sin(2.*np.pi*i/10)) ax1.clear() ax1.plot(xs, ys) plt.grid() ani = animation.FuncAnimation(fig, animate, fargs=[5],interval = 100) plt.show() 

Я заменяю example.txt жесткой строкой, так как у меня не было файла и добавлено в зависимость от i поэтому сюжет перемещается.