Matplotlib:在脚本等待“ input()”时无法操纵绘图

时间:2018-10-30 09:05:45

标签: python python-3.x matplotlib plot user-input

在用户使用标准缩放控件操纵绘图之后,我试图通过input()来获取用户输入。例如。用户使用该图,找出所需的X值,然后将其键入命令行提示符。

图可以在单独的窗口中(Spyder / Python)或嵌入式(在Jupiter Notebook中)。

在用户输入值之后,脚本将继续(例如,从绘图中询问另一个值,或使用这些值进行一些计算)。

但是,在命令行等待用户输入时,我无法使图实际显示并做出响应。我尝试过:

  • 首先plot()条语句,然后再进行input()条语句。
  • 带有Python 3.6的Spyder(我认为),是通过MacPorts从源代码获得的(据我所知,Spyder已尽可能更新)
  • IPython中ContinuumIO的Anaconda软件包中通过Python 3.7进行的Spyder
  • 同样来自Anaconda的Jupiter Notebook
  • 大量后端:macosx,qt等
  • 笔记本%matplotlibnotebookinlineqt
  • 单独的图形窗口(Spyder和Python)与嵌入式图形(Jupyter Notebook)
  • fig.show( block=False )及其变体,例如。 plt.show( block=False )
  • 两种不同的MacBook(2017年和2010年的MacBook Pro)

did 通过在{{1之间添加一个matplotlib.pyplot.pause(0.5),得到要实际更新的图(以前它是Notebook中的空白,或者是单独的图形窗口) }}和plot()语句。这是一个重大的进步,但是一旦脚本命中了input()语句,我就会在“图形”窗口上看到一个旋转的沙滩球(防止缩放等),直到我通过输入内容完成input()语句,然后脚本完成。那时情节是互动的。

似乎python控制台不能同时处理多个用户交互?就是input()是否冻结了所有其他用户交互?

我已经搜索SO,谷歌等了好几天了,还没有弄清楚!这个想法是在进行理论上更复杂的任务(直接从图中获取用户点击)之前,将其用作从图中获取用户输入的“快速而肮脏的”方式(这将不得不捕捉到诸如数据之类的绘制数据)游标)。

0 个答案:

没有答案