我想迭代matplotlib子图,在每个子图中绘制一条跟踪tr
。但是,我目前得到的输出在每个子图中绘制了所有8条迹线。如何将一条迹线绘制到自己的子图中?我怀疑它与我的for循环索引有关,但我似乎无法确定这个问题所在。感谢。
简化代码如下:
traces = glob.glob('*.data')
fig,ax = plt.subplots(nrows=4, ncols=2)
index = 0
for index, ix in enumerate(traces):
tr = obspy.read(traces[index])[0]
*do stuff*
for i in range(4):
for j in range(2):
ax[i, j].plot(time,tr.data, color='k')
index+=1
编辑:下面的代码已经解决了这个问题。
traces = glob.glob('*.data')
fig,axes = plt.subplots(nrows=4, ncols=2)
index = 0
for tr, ax in zip(traces, axes.reshape(-1)):
** do stuff **
tr = obspy.read(traces[index])[0]
ax.plot(time,tr_trim.data, color='k')
ax.set_ylabel("Raw Data")
ax.set_xticks([]);
index +=1
plt.show()