【发布时间】:2021-04-18 05:57:53
【问题描述】:
我想要一个包含 6 个相关图的 2 x 3 数字,共享相同的比例,即使图中的值具有不同的范围。下面你可以看到我到目前为止所拥有的。
在第一列中,值的范围从 0 到 1,对角线上为 1,其他地方接近 0。对于其他两列,顶行的值范围为 0 到 1,而底行的值范围为 -1 和 1。第二列和第三列之间的区别在于第二列中的值大约是 0.3(和 -0.3),第三列中的值大约是 0.7(和 -0.7)。
如您所见,有几件事似乎不正确。首先,虽然我希望它们都按照相同的色标绘制,深蓝色为-1,黄色为1,但显然不是这样。如果这会成立,我们将在第一列中显示明亮的蓝色/绿色。我能做些什么来指示颜色的范围?接下来,如何更改右侧色标的标签?我希望它的范围是 -1 到 1。
下面是我的实现。
fig, ax = plt.subplots(nrows=2, ncols=3, figsize=(15,8))
idx_mixed = {False: 0, True: 1}
idx_rho = {0: 0, 0.3: 1, 0.7: 2}
for mixed in [False, True]:
for rho in [0, 0.3, 0.7]:
ax[idx_mixed[mixed]][idx_rho[rho]].matshow(results[mixed][rho])
ax[0][0].set_title("No correlation", pad=20, fontsize=14)
ax[0][1].set_title("Weakly correlated", pad=20, fontsize=14)
ax[0][2].set_title("Strongly correlated", pad=20, fontsize=14)
ax[0][0].set_ylabel("Positive correlations", fontsize = 14)
ax[1][0].set_ylabel("Mixed correlations", fontsize = 14)
fig.colorbar(mpl.cm.ScalarMappable(), ax=fig.get_axes())
【问题讨论】:
标签: matplotlib plot colors scale correlation