我在使用 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/