использование matplotlib для создания трехмерной синусоидальной анимации - PullRequest
0 голосов
/ 30 октября 2019

пытается создать симуляцию для света в виде двух перпендикулярных синусоидальных волн, распространяющихся по среде, то есть распространяющихся по оси 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...