Я новичок в matplotlib. У меня есть список x-y-координат, которые я обновляю на python и хочу оживить с помощью mplotlib's pyplot. Я хочу заранее указать диапазон x и y-диапазон. Ниже мой текущий код:Простая анимация 2D-координат с использованием matplotlib и pyplot
import matplotlib.pyplot as plt
x=[1,2,3,4]
y=[5,6,7,8]
for t in range(100):
#lists x and y get updated here
#...
plt.plot(x, y, marker='o', linestyle='None')
plt.show()
Как вы можете видеть, я использую plt.plot()
и plt.show()
в конце моей итерации цикла построить только окончательные координаты. Но я хочу поставить этот шаг внутри цикл и график на каждой итерации с указанным временем паузы, чтобы у меня была анимация по мере запуска цикла.
Просто перемещение этого утверждения внутри цикла или его настройка не работают. Я хочу, чтобы это было очень просто, и не хочу использовать matplotlib.animation
. Есть ли какой-то простой метод без использования большего количества модулей и библиотек (только такие вещи, как plt.pause()
и, возможно, только немного больше), которые позволят мне делать то, что я хочу?
Я смотрел много мест в Интернете, и проблема, с которой я сталкиваюсь с большинством методов, заключается в том, что я использую для этого python (x, y) (это python версия 2.7) для Windows и анимации с использованием слишком сложных модулей и библиотек здесь рушится.
Тем не менее, я могу использовать простые вещи, такие как this example на сайте matplotlib, что близко к тому, что я хочу, но не совсем. Поэтому, возможно, лучше всего будет изменение этого примера, которое работает для моего случая 2D-данных (этот пример относится к 1-й строке). Но любое другое предложение приветствуется.
+1. Это работает. Я просто попытаюсь приспособить его к моей последней программе и посмотреть, как это происходит. –
Это отлично поработало с моей программой. Принято. И спасибо! –
Может быть удобно использовать 'ax.clear()'; то вы можете просто нарисовать новую фигуру, и вам не нужно различать первый и более поздний прогоны. Кроме того, 'plt.pause()' вызвал ошибку для меня, вместо этого я использовал 'fig.canvas.start_event_loop()'. – Scipio