Spyder 绘图不允许足够的用户控制

Posted

技术标签:

【中文标题】Spyder 绘图不允许足够的用户控制【英文标题】:Spyder plots not allowing enough user control 【发布时间】:2021-07-26 23:01:50 【问题描述】:

我正在 Windows 笔记本电脑上通过 spyder (4.1.4) 运行 python (3.8)。我需要在一个图表上绘制多个系列,然后执行通常的操作,例如调整轴限制、定位图例等。Spyder 不会让我在一个图表中完成所有这些操作。

例如,下面会产生两个不同的图:

plt.plot(seriesa,'o')
plt.plot(seriesb,'o')

这也是如此:

fig = plt.figure()
ax = fig.add_subplot()
ax.plot(seriesa,'o')
ax.plot(seriesb,'o')

我可以通过在一个命令中完成整个事情来在一个图表中获得两个图:

fig = plt.figure() ; ax = fig.add_subplot() ; ax.plot(seriesa,'o') ;  ax.plot(seriesb,'o')

(这对我来说似乎是一个 hack,但我会做任何有效的事情)。但是接下来我需要调整y轴范围,以及命令

ax.set_ylim((0,2000))

对情节没有影响。和命令

plt.ylim((0,2000))

开辟了一个全新的情节。

我也尝试过内联绘图(取消选中“静音内联绘图”菜单项),但没有任何改进。

如何获得我需要的情节控制?

【问题讨论】:

您如何在 Spyder 中运行您的代码?通过一次向控制台发送一行? @CarlosCordoba 找到了答案,我在下面发布了该答案。但我试图一次向控制台发送一个命令。我确实在一次复制和粘贴几行方面取得了更大的成功。但这并不够好,无论如何也不会一直是一个选择。就像我说的,找到了解决方案。但如果您有任何进一步的见解,我将不胜感激。 您还可以使用单元格一次运行多行代码,如here 所述。 @CarlosCordoba 对此一无所知。将不得不给它一个更详细的外观。谢谢。 【参考方案1】:

如果有人感兴趣,解决方案是,在进行任何绘图之前,发出 IPython“魔法命令”:

In [1]: %matplotlib auto

这使 spyder 处于默认情况下将绘图放置在独立窗口中的状态,就像在常规 shell 中运行 python 时一样。在 spyder 文档中找不到这个。在类似的堆栈溢出问题here 中找到它。

【讨论】:

以上是关于Spyder 绘图不允许足够的用户控制的主要内容,如果未能解决你的问题,请参考以下文章

Pycharm、Spyder、Jupyter notebook“弹出窗绘图”和“控制台绘图”设置

如何在 spyder 中重新打开绘图窗格?

将多行(读取为单行/输入)粘贴到 Spyder 控制台

MySQL访问控制和用户管理

在spyder下调用cerebro.plot()不显示图片问题

Spyder 控制台不显示函数输出