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“弹出窗绘图”和“控制台绘图”设置