У меня проблема в функции, которая будет использоваться в matplotlib FuncAnimation.Оператор возврата Python в функции PlotAnimation
Я знаю, что это не 100% связано с кодом PlotAnimation. Это больше связано с тем, как работает return
. Во всяком случае, вот оно:
Мне нужно построить несколько строк на одном графике, но я не знаю заранее, сколько строк. Итак, я создал список участков (так называемый lines
) так:
fig = plt.figure()
ax = plt.axes(xlim=(0, 1), ylim=(0, 1), aspect='equal')
lines=[]
for i in range(len(disc)):
line, = ax.plot([], [], '-', lw=1.5)
lines.append(line)
Скажем len(disc)
равно или больше 3. Если я делаю это:
def animate(i):
global disc
for i in range(len(disc)):
lines[i].set_data(disc[i].x, disc[i].y)
return line[0], line[1], line[2]
anim = animation.FuncAnimation(fig, animate, blit=True)
plt.show()
Все работы perfecly (кроме за то, что если len(disc)
жадно, чем 3, я пропускаю некоторые строки на графике).
Однако, я не знаю len(disc)
заранее. Итак, мой вопрос: Есть ли способ, чтобы использовать что-то вроде этого:
return lines
(или что-то подобное, я знаю, что выше не работает), заменив оператор возврата в animate
функции выше?
Это должно возвращать 'lines [0]' only. –
Конечно, как глупо. Как насчет 'обратных линий [0: len (lines)]' –
Спасибо, обратные линии [0: len (lines)] отлично работали! –