Построение динамических c данных в 3D с помощью matplotlib - PullRequest
0 голосов
/ 03 мая 2020

У меня есть функция get_3d(), которая будет возвращать координаты x, y, z объекта. Теперь я хочу построить это динамически в matplotlib. Раньше я писал эту функцию внутри блока while True:. Однако, поскольку я хочу построить это с помощью функции FuncAnimation(), я делаю это в самой функции обратного вызова:

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

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

point, = ax.plot([0], [0], [0], 'o')

def update_point(point):
    (x, y, z) = get_3d()
    point.set_data(np.array([x, y]))
    point.set_3d_properties(z[n], 'z')
    return point

ani=animation.FuncAnimation(fig, update_point, fargs=point, interval = 10)

plt.show()

Функция get_3d() (предполагается, что она уже определена) должна быть называется каждые 10 мс. Возвращает 3 отдельных значения координат x, y и z. Однако при выполнении этого кода на Python2 .7 я получаю следующие ошибки:

TypeError: update_point() argument after * must be an iterable, not Line3D

Я новичок в matplotlib, поэтому, если есть какие-то глупые ошибки, пожалуйста, прости меня. Любая помощь будет принята с благодарностью.

Спасибо.

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