пытается создать симуляцию для света в виде двух перпендикулярных синусоидальных волн, распространяющихся по среде, то есть распространяющихся по оси X и колеблющихся по осям y и z.
Edit-1: да, у меня естьпрошел по этой ссылке: 3D-анимация с использованием 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-анимационный сюжет. Результат: ошибка: Ошибка значения: слишком много значений для распаковки (ожидается 2)