我正在尝试创建一个具有许多非均匀子图的图形。我希望能够使用可迭代的索引创建图,因此不必单独创建每个图。
我可以使用fig,ax = plt.subplots(5)创建一系列统一的子图,其中可以使用ax [i]绘制到各个轴。
fig, ax = plt.subplots(5)
展望未来,我可以使用ax [i]和ax [0] .plt等来绘制每个图。
但是我希望能够创建一系列如下所示的图:
gridsize = (10,3)
fig = plt.figure(figsize=(5,3))
ax0 = plt.subplot2grid(gridsize, (0, 0), colspan=3, rowspan=1)
for i in range(1,5):
ax1 = plt.subplot2grid(gridsize, (i, 0), colspan=2, rowspan=1)
ax2 = plt.subplot2grid(gridsize, (i, 2), colspan=2, rowspan=1)
我可以在上面使用ax [i]调用每个图。
有人有什么想法吗?谢谢。
答案 0 :(得分:0)
您可以将轴附加到列表中,从中为各个项目建立索引或对其进行迭代。
import numpy as np
import matplotlib.pyplot as plt
gridsize = (10,3)
fig = plt.figure(figsize=(5,3))
ax0 = plt.subplot2grid(gridsize, (0, 0), colspan=3, rowspan=1)
ax = [ax0]
for i in range(1,5):
ax.append(plt.subplot2grid(gridsize, (i, 0), colspan=2, rowspan=1))
ax.append(plt.subplot2grid(gridsize, (i, 2), colspan=2, rowspan=1))
## Now plot to those axes:
for i in range(2*4+1):
ax[i].plot(np.arange(14),np.random.randn(14))
for axi in ax:
axi.plot(np.arange(14),np.random.randn(14))
plt.show()