使用matplotlib生成3d正弦波动画

时间:2019-10-30 16:17:01

标签: python-3.x matplotlib

尝试创建两种垂直正弦波形式的光模拟,这些正弦波通过介质传播,即通过x轴传播并通过y和z轴振荡。

Edit-1:是的,我已经通过以下链接:3D animation using matplotlib 并且以上链接中解决的问题与我的不同,我需要针对当前代码的调试帮助:)

import numpy as np
from matplotlib import pyplot as plt
from matplotlib.animation import FuncAnimation
import mpl_toolkits.mplot3d.axes3d as p3

plt.style.use('seaborn-pastel')

fig = plt.figure()
ax = p3.Axes3D(fig)

ax.set_xlim(0, 4)
ax.set_ylim(-2, 2)
ax.set_zlim(2, 2)

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

line, = ax.plot([], [], [])

def init():
    line.set_data([], [], [])
    return line,
def animate(i):
    x = np.linspace(0, 4, 1000)
    y = np.sin(2 * np.pi * (x - 0.01 * i))
    z = np.sin(2 * np.pi * (x - 0.01 * i))
    line.set_data(x, y, z)
    return line,

anim = FuncAnimation(fig, animate, init_func=init,
                               frames=200, interval=20, blit=True)
plt.show()
# anim.save('sine_wave_3D.gif', writer='imagemagick')

预期输出:3D动画情节。 结果:错误: ValueError:太多值无法解包(预期2)

0 个答案:

没有答案