python - Gridspec 范围错误

标签 python python-2.7 matplotlib plot

我在使用 matplotlib 的 gridspec 时遇到了一个我似乎无法弄清楚的简单错误。谁能告诉我哪里出错了?

import matplotlib.pyplot as plot
import matplitlib.gridspec as gridspec
gs = gridspec.GridSpec(1,3, width_ratios = [1,1], height_ratios = [2,1])
fig = plot.figure(figsize=(20,10))
ax1 = plot.subplot(gs[:, :-1])
ax2 = plot.subplot(gs[:, -1])

我用这段代码得到的错误是

IndexError:索引 4 超出了大小为 4 的轴 0 的范围

这对我来说没有意义。我想我用这段代码说的是第一个轴 (ax1) 应该占据所有行,并且位于前两列中。第二个轴 (ax2) 应该占据所有行,并且只存在于第三列中。这不是我的代码的实际含义吗?

最佳答案

gs = gridspec.GridSpec(1,3)表示有1行3列,但是 width_ratios = [1,1] 表示有 2 列,height_ratios = [2,1] 表示有 2 行。不幸的是,matplotlib 在 gs 的实例化时没有捕捉到矛盾,但是矛盾导致了稍后的错误

ax1 = plot.subplot(gs[:, :-1])

被调用。要修复错误,您可以指定 3 个宽度比率和一个高度比率:

gs = gridspec.GridSpec(1,3, width_ratios=[1,2,3], height_ratios=[1])

例如。

关于python - Gridspec 范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33221544/

相关文章:

python - 基于 PyQt 的 GUI 中的计时器

python - 使用 Powershell 安装最新版本的 Python 的首选方式是什么?打包的二进制文件还是在线安装?

python - 如何使用 Docker 清除 Django 的缓存?

python - BeautifulSoup 获取特定列的所有值

python - Seaborn:指定确切的颜色

python - 如何在seaborn中为不同样式的线图和散点图创建正确的图例条目

python - 如何使用 matplotlib 在形状上画一个洞

python - 在生产过程中 Django 管理站点会发生什么?

python - 在 Python 中如何获取字典的部分 View ?

python-无法在 Tkinter 中获取按键