我想用matplotlib制作3D动画,但是我不知道怎么做。这是我的非工作代码。
from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import animation
from math import *
fig = plt.figure()
ax = fig.add_subplot(111) #, projection='3d'
#setting
ax.set_xlim(-5,5)
ax.set_ylim(-5,5)
#ax.set_zlim(-5,5)
ax.set_xlabel('x')
ax.set_ylabel('y')
#ax.set_zlabel('z')
ax.grid()
f1, = ax.plot([], [], "r-", lw=1) #plot1
def gen():
for phi in np.linspace(0,2*pi,100):
yield np.cos(phi), np.sin(phi), phi
def update(data):
p1, q1, psi = data
f1.set_data(p1,q1)
#f1.set_3d_properties(psi)
ani = animation.FuncAnimation(fig, update, gen, blit=False, interval=100, repeat=True)
#ani.save('matplot003.gif', writer='imagemagick')
plt.show()
2条答案
按热度按时间xmd2e60i1#
我使用了这个例子http://matplotlib.org/1.4.1/examples/animation/simple_3danim.html并修改了你的代码:
ffvjumwh2#
下面是一个球体向右移动并离开屏幕的代码。
你必须在一个文件夹中运行这段代码,因为它会生成26个
.png
图像 (和一个.gif
图像):输出: