代码之家  ›  专栏  ›  技术社区  ›  Demis

matplotlib:脚本正在等待'input(),无法操作plot`

  •  0
  • Demis  · 技术社区  · 6 年前

    我试图通过 input() ,在用户使用标准缩放控件操纵绘图之后。用户播放绘图,计算出所需的x值,并将其键入命令行提示符中。

    绘图可以在单独的窗口(spyder/python)中进行,也可以在线(在jupiter笔记本中)。

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

    但是,在命令行等待用户输入时,我无法让绘图真正显示出来并作出响应。我试过:

    • plot() 先陈述一下, 输入() 陈述第二。
    • Spyder和Python3.6(我想),从源代码通过MacPorts(尽可能更新Spyder)
    • Spyder Via Python 3.7,来自IPython中ContinuMio的Anaconda包
    • 木星笔记本也来自水蟒
    • 许多后端:macosx、qt等。
    • 笔记本 %matplotlib 我是说, notebook ,请 inline 我是说, qt 等。
    • 独立图形窗口(Spyder&Python)与内嵌图形(Jupyter笔记本)
    • fig.show( block=False ) 以及这方面的变化。 plt.show( block=False )
    • 两款不同的MacBook(2017和2010 MacBook Pro)

    通过添加一个 matplotlib.pyplot.pause(0.5) 绘图() 输入() 声明。这是一个重大的进展,但一旦剧本进入 输入() 声明,在完成 输入() 语句,然后脚本完成。在那一点上,情节是互动的。

    python控制台似乎不能同时处理多个用户交互?即。 输入() 冻结所有其他用户交互吗?

    我已经搜索了好几天了,谷歌等等,但还没有找到答案!其想法是,在执行理论上更复杂的任务(即直接从绘图中获取用户单击)之前,将此作为从绘图中获取用户输入的“快速和肮脏”方法(必须捕捉到绘图数据,如数据游标)。

    0 回复  |  直到 6 年前