[英]How do I get interactive plots again in Spyder/IPython/matplotlib?
我在 Windows 7 中从 Python(x,y) 2.7.2.3 升级到2.7.6.0 (很高兴看到我终于可以输入function_name?
并再次在对象检查器中查看文档字符串)但现在绘图不起作用像以前一样。
以前(Spyder 2.1.9、IPython 0.10.2、matplotlib 1.2.1),例如,当我绘制此脚本时,它会在交互式窗口中并排绘制子图:
现在(Spyder 2.2.5,IPython 1.2.0,Matplotlib 1.3.1)当我尝试绘制事物时,它将子图作为微小的内联 PNG 执行,这是IPython 的一个变化:
所以我进入了选项并发现了这个:
这似乎是说我可以恢复旧的交互式绘图,并排显示 4 个子绘图,但是当我切换到“自动”并尝试绘制某些内容时,它什么也没做。 根本没有情节。
如果我将此下拉菜单切换到 Qt,或取消选中“激活支持”,它只会绘制第一个子图或其中的一部分,然后停止:
如何在我可以交互的单个图形中获得 4 个并排子图的旧行为?
将后端更改为自动:
工具 > 首选项 > IPython 控制台 > 图形 > 图形后端 > 后端:自动
然后关闭并打开 Spyder。
您可以通过在 Spyder 的 IPython 控制台中输入内置魔法命令来快速控制它,我发现这比从首选项菜单中选择这些命令更快。 更改立即生效,无需重新启动 Spyder 或内核。
要切换到“自动”(即交互式)绘图,请键入:
%matplotlib auto
然后,如果您想切换回“内联”,请键入:
%matplotlib inline
(注意:这些命令在非 IPython 控制台中不起作用)
查看有关此主题的更多背景信息: “%matplotlib inline”的目的
正如评论中所说,问题在于您的脚本。 其实有2个问题:
None
传递。 也许是由于 defaultdict ?show()
。 show()
应该在脚本结束时调用一次。 另一种方法是使用交互模式,在 matplotlib 的文档中查找ion
。这实际上很容易修复并且不需要任何编码:
1. 单击控制台上方的 Plots 选项卡。 2.然后在绘图屏幕的右上角单击选项按钮。 3.最后取消选中“静音内联绘图”按钮
现在重新运行您的脚本,您的图形应该会显示在控制台中。
干杯。
对于大多数数学编码,我使用这个网站和他们的服务,因为他们为每个主题提供示例,他们的支持非常有帮助:
https://labdeck.com/application-examples-screenshots/
如果您希望图形以可变数量变化,那么您要使用的代码是
import matplotlib.pyplot as plt
import time
vec1=[1, 2, 3, 4, 5]
vec2py=[10, 12, 9, 11, 13]
plt.show()
axes = plt.gca()
axes.set_xlim(0, 6)
axes.set_ylim(5, 50)
plt.xlabel('x - axis')
plt.ylabel('y - axis')
plt.title('Example 1')
plt.grid()
line,= axes.plot(vec1,vec2py,color='red',lw=1)
for x in range(0,10):
vec2py = [x + 2 for x in vec2py]
line.set_ydata(vec2py)
plt.draw()
plt.pause(1e-17)
time.sleep(0.5)
plt.show()
您必须更改 x 以表示您想要的图形迭代次数以及您希望它运行多长时间,以及 vec2py 行中的 +2 以表示您想要更改它的变量数量。 当然,代码是一个模板,您可以进行任何美学上的更改。 该代码文件位于上面链接中python编程下的显示动态图下。
如果你想显示来自源的信息的持续依赖,我不确定如何做到这一点,但之前提到的网站确实有一个例子,但它不是在 python 中,而是在 C++ 的简化形式中。如果您确实想看到它,那么链接是https://labdeck.com/examples/dsp-ecg-processing/ecg-9-leads-graphs.pdf?01a96f&01a96f及其下 ECG 9 Leads graphs in ECG on the link at开始。 图形可以在文档中显示,也可以独立于文档显示。
PS 这适用于有相同问题但不一定是相同场景的人,因为我认为这会更有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.