我在for循环中有6个图,但输出图不是垂直显示的,最好是在2x3视图中。
这是我的for循环图:
#plt.figure(figsize=(10,10))
for i,l,k in zip(basin_id,basin_id_lsds,basin_names):
plt.plot(time_months,remove_seasonality(climatology(ob_monthly(fwf_tot_grnl,i,l)),ob_monthly(fwf_tot_grnl,i,l)),label=k)
plt.title(k)
plt.ylim(-30,50)
plt.grid()
plt.xlabel('Time')
plt.ylabel('FWF Anomalies')
plt.show()
我第一次尝试改变子画面,使nrows=3,ncols=2:
for i,l,k in zip(basin_id,basin_id_lsds,basin_names):
fig, ax = plt.subplots(nrows=3, ncols=2)
ax.plot(time_months,remove_seasonality(climatology(ob_monthly(fwf_tot_grnl,i,l)),ob_monthly(fwf_tot_grnl,i,l)),label=k)
ax.set_title(k)
#plt.ylim(-30,50)
#plt.grid()
#plt.xlabel('Time')
#plt.ylabel('FWF Anomalies')
plt.show()
但是我得到了这个错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-76-f21ee20e457f> in <module>
1 for i,l,k in zip(basin_id,basin_id_lsds,basin_names):
2 fig, ax = plt.subplots(nrows=3, ncols=2)
----> 3 ax.plot(time_months,remove_seasonality(climatology(ob_monthly(fwf_tot_grnl,i,l)),ob_monthly(fwf_tot_grnl,i,l)),label=k)
4 ax.set_title(k)
5 #plt.ylim(-30,50)
AttributeError: 'numpy.ndarray' object has no attribute 'plot'
如何解决此问题以获得2x3的绘图视图?
总结评论:
- 在循环外创建子图形:
- 使用
axs.ravel()
在子地块上循环
fig, axs = plt.subplots(nrows=3, ncols=2, figsize=(10, 10))
for i,l,k,ax in zip(basin_id,basin_id_lsds,basin_names, axs.ravel()):
ax.plot(...)