matplotlib动态的子图数

时间:2017-05-24 13:10:35

标签: python-3.x matplotlib subplot

我正在尝试使用matplotlib获取子图,在运行时计算subplots的数量(pnum在下面的示例中有所不同)

  pnum = len(args.m)
  f, (ax1, ax2) = plt.subplots(pnum, sharex=True, sharey=True)
  ax1.plot(x,ptp, "#757578",label="Total")
  ax2.fill_between(x,dxyp,facecolor="C0", label="$d_{xy}$")

这个例子显然只有在pnum = 2时才能工作。所以,我还需要做点别的事。

我已经检查了this question的已接受答案,但这在所有情节中都是相同的。

1 个答案:

答案 0 :(得分:1)

要创建动态数量的子图,您可以决定不单独指定轴,而是作为轴数组

pnum = len(args.m)
fig, ax_arr = plt.subplots(pnum, sharex=True, sharey=True)
然后

ax_arr是一个numpy数组。 然后,您可以在循环中为每个轴执行某些操作。

for ax in ax_arr.flatten():
    ax.plot(...)