我有一个应该创建一堆子图的循环。问题是它似乎在所有子图上绘制了相同的点,或者更确切地说,它继承了前一个图的点。因此,例如 plot1 数据绘制在子图 1、2、3 上。然后将 2 个点绘制在 2 和 3 上。当我在没有循环的情况下手动执行时也会发生同样的情况。
number_of_subplots=len(list(chn.keys()))
fig, axs = plt.subplots(number_of_subplots, sharex=True, gridspec_kw={'hspace': 0})
i = 0
for x in chn.keys():
ch = chn[x]
p = ch[ch['kind'].str.contains('P')].sort_values(['strike'], inplace=False).reset_index(drop=True)
c = ch[ch['kind'].str.contains('C')].sort_values(['strike'], inplace=False).reset_index(drop=True)
print(c,p)
axs[i].scatter(p['strike'], -p['volume'])
axs[i].scatter(c['strike'], c['volume'])
axs[i].set_ylabel(list(chn.keys())[i])
i +=1
for ax in axs:
ax.label_outer()
plt.tight_layout()
plt.show()