【问题标题】:Jupyter (IPython) notebook: plot in the qt mode + prompt raw_input()Jupyter (IPython) 笔记本:在 qt 模式下绘图 + 提示 raw_input()
【发布时间】:2016-03-06 10:55:57
【问题描述】:

我正在尝试在 Jupyter 笔记本(Python 2.7)中绘图,然后提示用户输入,保存然后更改绘图(这是一个关键点:我不想创建新绘图,我需要用户输入后修改旧的)。这完全行不通。它不是显示图形然后提示输入,而是打开图形窗口,但会冻结(不显示任何内容),直到我响应 raw_input() 提示。只有这样它才会绘图。

显示错误的简单代码:

import matplotlib.pyplot as plt
%matplotlib qt

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1,2,3],[1,2,3])
plt.show(block=False)
my_input = raw_input()

此错误仅在我使用 %matplotlib qt 时出现,但我必须使用它,因为使用 %matplotlib inline 我无法在显示后修改绘图(至少据我所知)。

事实上,我注意到它一直冻结到单元格执行结束,即使它只是 time.sleep()。

我错过了什么吗? matplotlib显示图形的一些设置?

【问题讨论】:

    标签: python matplotlib ipython-notebook jupyter


    【解决方案1】:

    由于我使用的是 Python3,我不得不将 raw_input() 更改为 input() 并删除了 block=False,因为 IPython 告诉我这是一个未知属性。

    这应该很好用:

    import matplotlib.pyplot as plt
    %matplotlib inline
    
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.plot([1,2,3], [1,2,3])
    plt.show()
    my_input = input()
    

    当然,您需要将其重新适应 Python2 以满足您的需求。

    【讨论】:

    • 内联绘图后可以修改绘图吗?这就是我更喜欢使用“qt”而不是内联的原因。
    猜你喜欢
    • 2015-10-15
    • 2016-04-11
    • 1970-01-01
    • 2016-05-12
    • 2016-07-19
    • 2022-07-21
    • 1970-01-01
    • 2013-04-15
    • 2019-03-17
    相关资源
    最近更新 更多