VSCode中的Python交互式模式

3
我在Python Interactive中的VSCode(Windows)中尝试以交互模式打开任何matplotlib图表。 我尝试使用魔术命令。
%matplotlib qt 

有时图表可以正常打开,但很多时候会“闪烁”(打开图表窗口并立即关闭,我不知道为什么),然后在Python Interactive中显示图表。
我尝试了plt.ion(),但似乎没有改变任何东西。
正确的交互式打开图表的方法是什么?

https://github.com/matplotlib/matplotlib/blob/c06e8709dde6504d396349c0c80ef019c88c3927/lib/matplotlib/backends/web_backend/nbagg_uat.ipynb 可能会有所帮助。 - P i
2个回答

3

如果您想在单独的窗口中显示绘图,可能需要设置后端。此外,您选择的后端可能与您的设置不兼容,因此请尝试几个不同的后端。

In [4]: plt.switch_backend('QtAgg4')

如果你希望在文本中显示绘图,那么无需进行任何操作。默认情况下,VS Code将会内嵌展示绘图。因此,你不需要使用%matplotlib inline或plt.show()。但如果确实希望在文本中展示绘图而它却无法正常工作,可以尝试如下操作:

get_ipython().run_line_magic('matplotlib', 'inline')

这是将Jupyter笔记本导入后在VS Code中呈现的内容。
    import numpy as np
    import matplotlib.pyplot as plt

    x = np.arange(0,100)
    y = x*2

    # Functional Method
    fig = plt.figure()
    ax = fig.add_axes([0, 0, 1, 1])
    ax.plot(x, y)
    ax.set_title('title')
    ax.set_xlabel('X')
    ax.set_ylabel('Y')

我的代码已在VS Code的交互式窗口中测试,并且图表可以内联显示。


更新回答(截至2019年11月):
这个问题在最近的VS Code更新中已经解决。请确保安装所有Jupyter Notebook扩展程序。此外,现在您可以右键单击.ipynb文件并选择“使用VS Code打开”。这将自动在两个窗口中打开文件,左侧是原始JSON代码,右侧是交互式Jupyter笔记本。非常不错。我真的很喜欢VS Code的这个新更新。


谢谢。有趣的是,当我尝试切换到QtAgg4时,会出现以下错误:No module named 'matplotlib.backends.backend_qtagg4'而当我执行魔法命令"%matplotlib qt"时,plt.get_backend()返回'Qt5Agg'我应该安装qt4而不是5吗? - Philipp

1

我是交互窗口的开发人员。Jennifer已经在上面给出了一些关于如何在我们当前的版本中实现弹出图形的好建议。但如果你有兴趣,我们最近在我们最新的开发版本中添加了一个图形查看器。你可以在这里看到问题:

https://github.com/microsoft/vscode-python/issues/4976

这个功能将会在我们下一个月度发布版本中才会正式推出。但是,如果你想尝试一下并查看它是否适合你,你可以在这里检查我们的开发构建版本:

https://github.com/microsoft/vscode-python/blob/master/CONTRIBUTING.md#development-build


1
Ian,谢谢。 我检查了新版本。由于我还是一个新手编码人员,所以我会坚持使用经过测试的当前版本的VS Code。我真的很喜欢在当前版本中将iPython笔记本添加到VS Code中。 - Jennifer Yoon
谢谢,我会等待更新并尝试它。希望它能解决这个问题。 - Philipp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接