我正在尝试创建一个脚本,它会转到每个点并保存一个图形,如果该点是好的。但这个数字只是没有反应/空白。有什么想法吗?
import matplotlib.pyplot as plt
A = range(-3, 3, 1)
for moving in range(len(A)):
parsedFile = 'TEST/data_%d' % (moving)
plt.figure(1)
plt.plot(A)
plt.plot(A[moving],"rx")
plt.show(block=False)
plotChoice = raw_input("Is this a good value? (y/n): ")
if plotChoice == 'y':
plt.savefig(parsedFile + '.jpg', pdi=1000)
plt.clf()
plt.close()
else:
plt.clf()
plt.close()
使用PyCharm
答案 0 :(得分:0)
在非交互模式下,plt.show()将阻止,直到图形关闭。根据文档,block
论证是实验性的,在我看来它在你的案例中不会起作用。好吧,至少它对我不起作用。
要与地图的用户互动,您可以使用Button小部件。两个按钮'是'和'不'可以直接放在情节中。您可以在此处找到一个示例:http://matplotlib.org/examples/widgets/buttons.html
按钮放置并不简单,所以为了简化一些事情,我使用了问题的标题标题并在旁边添加了按钮。可能看起来很难看,随意调整你的需求:
import matplotlib.pyplot as plt
from matplotlib.widgets import Button
ax = plt.subplot()
plt.title('Is this a good value?')
A = range(-3, 3, 1)
for moving in range(len(A)):
parsedFile = 'TEST/data_%d' % moving
ax.plot(A)
ax.plot(A[moving], 'rx')
def yes(event):
plt.savefig(parsedFile + '.jpg', pdi=1000)
plt.clf()
plt.close()
def no(event):
plt.clf()
plt.close()
yes_axes = plt.axes([0.69, 0.91, 0.1, 0.075])
yes_button = Button(yes_axes, 'Yes')
yes_button.on_clicked(yes)
no_axes = plt.axes([0.80, 0.91, 0.1, 0.075])
no_button = Button(no_axes, 'No')
no_button.on_clicked(no)
plt.show()