我是编码的新手,并且一直在尝试使用Octave(下面)中之前生成的代码在python中创建动画。到目前为止,我还没有取得任何成功,除了绘制一个非动画的散点图。任何提示或帮助将不胜感激。
clear;
N = 100;
NT = 200;
for i=1:N
x(i) = 0;
y(i) = 0;
end
plot(x,y,'o');
axis([0 20 -10 10]);
for k = 1 : NT
x = x + normrnd(0.1,0.1,1,N);
y = y + normrnd(0,0.1,1,N);
temp = mod(k,1);
if temp == 0
plot(x,y,'s');
axis([0 20 -10 10]);
drawnow
end
end
以下是许多无效的尝试之一(下文)。
import numpy as np
import matplotlib as plt
from pylab import *
from matplotlib import animation
import random
n=100
nt=2000
m=20
mu=0
sigma=0.1
p=100
fig = plt.figure()
ax = plt.axes(xlim=(-10, 10), ylim=(-10, 10))
scat, = ax.plot([], [])
# initialization function: plot the background of each frame
def init():
x = 0
y = 0
return scat,
# animation function. This is called sequentially
def animate(i):
for k in range (1,nt):
x = x+ np.random.normal(mu, sigma, n)
return scat,
for i in range (1,nt):
y = y+ np.random.normal(mu, sigma, n)
return scat,
anim = animation.FuncAnimation(fig, animate,
init_func=init,frames=200, interval=20, blit=True)
plt.show()
答案 0 :(得分:0)
你可以使用Octave of Python来制作动画。
对于python脚本,我认为其中一个问题是在循环中设置返回,因此对于一个函数def animate有几次。看动画文档https://matplotlib.org/api/animation_api.html我编辑了你的例子并得到了我认为可能有用的内容:
s = 'ABHAXA'
c = 'A'
filter(lambda i: c == s[i], range(len(s)))
您也可以使用octaves print命令生成动画,以生成多个png并使用gimp生成gif或使用animate在LaTeX中嵌入pngs。
最佳, 乔治