我有一个功能,可以绘制一组数据,突出显示某些点(计算机测量值),并询问用户输入这些点(这些点的理论值),以便校准设备。
这曾经很好用。但是,现在,在不更改任何内容的情况下,直到函数结束时才会显示该图。以下是我的代码示例(我在jupyter
笔记本中运行):
plot_peaks
获取数据并返回峰的x坐标,以及突出显示峰的数据图。
%matplotlib qt
def func(data):
plot_points = plot_peaks(data) # plot_peaks returns a list of points that gets saved as plot_points AND plots peaks in a window
for number, point in enumerate(plot_points):
print("What is the coordinate of point %f?" %(number)) # ask user for the theoretical coordinate of the recorded peak
answer = input("> ")
function_that_saves_user_inputs # placeholder function to save lines
return user_inputs_vs_plot_points # dictionary
用户需要绘图才能看到峰值是什么,以便他们可以输入理论值。但是,在用户输入所有数据点之前,图表不会显示。
如果我使用:
%matplotlib inline
然后在用户输入任何内容之前显示该情节。但我不能内联插图。
我尝试过的事情:
ion()
(不做任何改动)plt.show(block=False)
(一无变化)plt.show()
内添加另一个func()
(弹出一个空白窗口,当函数终止时,所需的图表会显示在新窗口中)答案 0 :(得分:1)
为了它的价值,我找到了我的具体问题的答案(经过大量的试验和错误)。
我需要的是在继续之前绘制剧情暂停很长时间的功能。我不知道为什么,也许它与python开始执行以下命令之前未完成的情节有关。如果有人知道为什么这会很有用。
我所做的就是在plt.pause(1)
方法的末尾添加plot_peaks()
。这意味着图形有时间在调用函数的下一部分之前完全显示。