ipython notebook --pylab内联:缩放图


80

如果激活了内联,是否可以放大绘图?特别是对于3d图而言,旋转和缩放是必需的功能。

Answers:


90

现在感谢mpld3,启用内联绘图的缩放非常容易!

您所要做的就是安装mpld3(pip install mpld3),然后将其添加到笔记本中:

%matplotlib inline
import mpld3
mpld3.enable_notebook()

现在,您的绘图将在左下方显示一个工具栏菜单,您可以在其中启用鼠标缩放:)


看来,3D绘图,不支持尚未:github.com/jakevdp/mpld3/issues/223
西奥牛逼

3
这很好,但是应该补充一点,对于一些较重的工作图(例如,包含数百万个点的图),它非常慢。

2
我在Jupyter Notebook 4.2.2中实现了此功能,放大导致该图变为空白。将origin ='lower'添加为imshow()调用的参数可修复该问题。(例如imshow(res,origin ='lower',cmap = cm.gray))
DanGoodrick

6
对我不起作用。我得到Json serialization error
Gulzar

94

现在,您可以使用%matplotlib notebook而不是,%matplotlib inline并且可以与自己的地块进行交互。


1
这是一个很好的解决方案。如果尝试使用它不起作用,请检查您的matplotlib版本。我认为这是在1.5版本中引入
jpobst

对于子图来说,效果不如我希望的那样。可以缩放和平移单个子图,但不能增加/减小整个图图像的大小。公平地说,这不是上面最初提出的问题。
ijoseph '17

1
@ijoseph,您也可以增加整个图像的大小。只需拖曳该图的右下角即可。
JoãoAbrantes

4
如果您已经致电%matplotlib inline
Guido,

3
我得到的错误“JavaScript错误:IPython中没有定义”

10

目前,您能找到的最接近的是使用该figsize功能以更大的尺寸重绘它。它期望以英寸为单位的尺寸,这在我第一次尝试使用它时就吸引了我。

有一些工厂可以提供丰富的后端功能,允许使用HTML5实时操作绘图,但我认为还需要几个月的时间才能完成。

如果您在本地计算机上使用笔记本电脑,那么目前最简单的选择可能是不使用嵌入式模式,因此绘图将作为单独的窗口弹出。


1
是的-使用最新版本的matplotlib,您现在可以选择nbagg后端。
Thomas K

9

mpld3减慢了我笔记本的执行速度。我发现最好使用nbagg后端,该后端提供相同的交互式工具,但也可以通过右键单击菜单保存图形:

import matplotlib
matplotlib.use('nbagg')
import matplotlib.pyplot as plt

2
老实说,我认为这是最好的答案,看起来比mpld3和更多功能更好。
bznein


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.