Использование Matplotlib-Patch внутри анимацииPython

Программы на Python
Ответить
Anonymous
 Использование Matplotlib-Patch внутри анимации

Сообщение Anonymous »

Я пытаюсь создать пустой патч, чтобы иметь возможность позже установить данные. Чтобы лучше объяснить мою проблему, приведу пример:

Код: Выделить всё

from matplotlib import pyplot as plt
import matplotlib.animation as animation

x = range(10)
y = [i**2 for i in x]

figure = plt.figure()
ax1 = figure.add_subplot(111, xlim=(0,10), ylim=(0,100))

my_line, = ax1.plot([],[], 'o-')

def init():
my_line.set_data([], [])
return my_line,

i = 0

def animate(_):
global i
my_line.set_data(x[0:i], y[0:i])
i = (i+1)%(len(x)+1)
return my_line,

ani = animation.FuncAnimation(figure, animate, repeat=True, blit=True, init_func=init)

plt.show()
Теперь я добавляю фигуру, края которой определяю случайным образом. Мне нужно использовать ту же структуру, которую я использовал для построения линий внутри блока init(): my_line.set_data([], []) . Однако мне это не удалось.

Я использую ту же структуру, что и пример, представленный в учебнике по matplotlib. Мои вершины генерируются функцией.

Когда я пытаюсь использовать: foo = patches.PathPatch([], facecolor='red', lw=2, Alpha=0.0), я получаю Но позже я не могу установить данные пути. Я пробовал использовать foo.set_data и foo.set_path, но у PathPatch нет таких атрибутов, и поэтому они не сработали. Я проверил эту страницу, но никуда не смог попасть. Я проверил все руководства, которые смог найти, но ни одно из них не помогло.

В качестве обходного пути я использовал команду ax1.add_patch() и установил для альфа-значения значение 0. Это в некоторой степени помогло, но, поскольку мне нужно ввести данные, чтобы иметь возможность использовать эту команду, все формы становятся видимыми на последнем этапе анимации на очень короткое время, и, поскольку я сохраняю свою фигуру в этот момент, это дает неблагоприятные результаты.

Будем благодарны за любую помощь...

Подробнее здесь: https://stackoverflow.com/questions/227 ... -animation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»