Matplotlib子图只有一行

时间:2019-06-18 20:22:42

标签: python matplotlib

当我们考虑使用2x2网格调用plt.subplots()时:

def pltpoc():
  import matplotlib.pyplot as plt
  x = np.linspace(0,2*np.pi,10)
  y = np.sin(x)
  fig, axs = plt.subplots(2, 2)
  axs[0, 0].plot(x, y)
  axs[0, 0].set_title('Axis [0,0]')
  axs[0, 1].plot(x, y, 'tab:orange')
  axs[0, 1].set_title('Axis [0,1]')
  axs[1, 0].plot(x, -y, 'tab:green')
  axs[1, 0].set_title('Axis [1,0]')
  axs[1, 1].plot(x, -y, 'tab:red')
  axs[1, 1].set_title('Axis [1,1]')
  plt.show()

pltpoc()

事物看起来膨胀:

enter image description here

当行数仅为1时,axes返回的plt.subplots()似乎有不同的行为。请考虑以下更新的代码,唯一的区别是它只有一行而不是两行:< / p>

def pltpoc1():
  import matplotlib.pyplot as plt
  x = np.linspace(0,2*np.pi,10)
  y = np.sin(x)
  fig, axs = plt.subplots(1, 2)
  axs[0, 0].plot(x, y)
  axs[0, 0].set_title('Axis [0,0]')
  axs[0, 1].plot(x, y, 'tab:orange')
  axs[0, 1].set_title('Axis [0,1]')
  plt.show()

pltpoc1()

现在,我们有一个完全不同的行为:

  

回溯(最近通话最近):文件   “ /usr/local/lib/python3.7/site-packages/IPython/core/interactiveshell.py”,   第3296行,在run_code中       exec(code_obj,self.user_global_ns,self.user_ns)文件“”,第1行,在       pltpoc1()在pltpoc1中的文件“”,第6行       axs [0,0] .plot(x,y)IndexError:数组的索引过多

那么..为什么一个行是“特殊”行?

0 个答案:

没有答案