Python数字崩溃并且没有响应

时间:2016-08-29 16:33:15

标签: python debugging figure

我正在尝试创建一个脚本,它会转到每个点并保存一个图形,如果该点是好的。但这个数字只是没有反应/空白。有什么想法吗?

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

1 个答案:

答案 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()