python - Jupyter 笔记本中的 Imagegrid
问题描述
我正在关注Imagegrid上的 matplotlib 文档中的一个示例,并且我正在尝试从 Jupyter 笔记本中复制它:
% matplotlib inline
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import ImageGrid
import numpy as np
im = np.arange(100)
im.shape = 10, 10
fig = plt.figure(1, (4., 4.))
grid = ImageGrid(fig, 111, # similar to subplot(111)
nrows_ncols=(2, 2), # creates 2x2 grid of axes
axes_pad=0.1, # pad between axes in inch.
)
for i in range(4):
grid[i].imshow(im) # The AxesGrid object work as a list of axes.
plt.show()
预期输出:
我得到了什么:
如您所见,我没有得到图像网格。我究竟做错了什么?
编辑
如果我删除该%matplotlib inline
选项,我就会得到这个(这是cell[1]
为了证明我重新启动了我的内核):
没有显示图。
我正在运行matplotlib
版本3.0.0
,检查conda list matplotlib
,jupyter
是4.4.0
,检查jupyter --version
。在 Windows 10、Anaconda、python 3.6 上。
解决方案
这是matplotlib 3.0.0 的问题。这已被修复,因此它不会出现在即将发布的 3.0.1 错误修复版本中。
与此同时,您有两个选择。
- 恢复到 matplotlib 2.2.3
决定在使用时不裁剪图像
%matplotlib inline
。通过这样做%config InlineBackend.print_figure_kwargs = {'bbox_inches':None}
在 IPython 或 Jupyter 中。
推荐阅读
- javascript - 如何按ID从数组中过滤json对象并传递给recyclerview
- android-studio - 如何在 Android Studio for Kotlin 中为方法添加灰色的参数提示(msg、上下文)?
- bash - $(printf '%q ' "${@:1}") 是否等同于 "${*}"?
- javascript - 从 JS 时间戳转换为带有时区的 Postgresql 时间戳
- json - 如何从 CouchDB 文档中的视图中获取特定数据
- c# - 不添加新字段/方法的继承有意义吗?
- java - 我如何处理以下代码示例中的异常。?
- ansible - 如何让 j2 评估 var 值内的替换
- android - 启动带有 viewpager 的片段时从工具栏中删除阴影
- java - Sum the base elements of a randomly nested array in Java?