Есть ли способ создать сюжет пошагово, показывая прогресс каждый раз, когда вызывается метод plt.show? Даже если игра с plt.show (block = False) или plt.show (block = True) не может заставить ее работать.matplotlib show in pydev
import matplotlib.pyplot as plt
xvals = [i for i in range(0, 10)]
yvals1 = [i**2 for i in range(0, 10)]
yvals2 = [i**3 for i in range(0, 10)]
yvals3 = [i**4 for i in range(0, 10)]
f, ax = plt.subplots(1)
ax.plot(xvals, yvals1)
plt.show(block=False)
raw_input("Program paused. Press Enter to continue...")
ax.plot(xvals, yvals2)
plt.show() # Need to close the window to go ahead.
raw_input("Program paused. Press Enter to continue...")
ax.plot(xvals, yvals3)
plt.show(block=False)
raw_input("Program paused. Press Enter to continue...")
Я бегу matplotlib == 2.0.0 в virtualenv с Pydev. Любая идея?
Возможно, информация в [этом ответе] (http://stackoverflow.com/a/12685979/3005167) может вам помочь. (т. е. попробуйте вызвать 'plt.ion()' в начале вашего скрипта). – kazemakase
Помимо добавления plt.ion(), если я добавляю plt.pause (0.0001) после каждой команды plt.show(), это делает трюк. Но я не знаю, есть ли другой лучший способ. – fara
Существует еще один способ: [анимация] (http://matplotlib.org/1.4.1/examples/animation/index.html). Какой способ лучше зависит от вашего варианта использования. Анимация более сложная, но может быть более надежной. Для «производственного» кода я, вероятно, сделаю это. Если вы хотите только визуализировать шаги своего кода, поскольку он работает во время разработки/отладки «быстрых и грязных» ударов «надежный и продуманный», на мой взгляд :) – kazemakase