我正在尝试在matplotlib中使用5行和2列的子图。
变量X表示字典。 [*X]
提供了字典中可用的键。
每个密钥应位于不同的行中。
idx = 0
axes = []
for key, val in X.items():
axes.append(plt.subplot(len([*X]),1,idx+1))
axes[idx].scatter(X[key], Y[key], color='r')
axes[idx].set_title(key)
axes[idx].set_xlabel(title)
axes[idx].set_ylabel('QoS')#, color='g')
axes[idx].spines['right'].set_visible(False)
axes[idx].spines['top'].set_visible(False)
axes[idx].xaxis.set_ticks_position('bottom')
axes[idx].yaxis.set_ticks_position('left')
axes[idx].set_ylim([0,1])
axes.append(plt.subplot(len([*X]),2,idx+1))
tmp = idx+1
axes[tmp].scatter(X[key], Y1[key], color='r')
axes[tmp].set_title(key)
axes[tmp].set_xlabel(title)
axes[tmp].set_ylabel('Power', color='g')
axes[tmp].spines['right'].set_visible(False)
axes[tmp].spines['top'].set_visible(False)
axes[tmp].xaxis.set_ticks_position('bottom')
axes[tmp].yaxis.set_ticks_position('left')
#axes[idx].set_ylim([0,1])
idx+=1
直觉上,我认为应该这样,假设len([*X])
为5。
511, 521
512, 522
513, 523
513, 523
514, 525
答案 0 :(得分:1)
这似乎有点令人费解。要了解如何定义子图,请参见In Matplotlib, what does the argument mean in fig.add_subplot(111)?
但是,在这里最好不要单独定义每个子图,而是一次创建它们。
fig, axes = plt.subplots(nrows=5, ncols=2)
for (key, val), axrow in zip(X.items(), axes):
axrow[0].scatter(X[key], Y[key])
axrow[1].scatter(X[key], Y1[key])