Matplotlib is hiring a Research Software Engineering Fellow! See discourse for details. Apply by January 3, 2020
色带表示图像数据的定量范围。把它们放在一个图形中是非常重要的,因为需要为它们腾出空间。
最简单的情况是在每个轴上附加一个颜色条:
import matplotlib.pyplot as plt
import numpy as np
fig, axs = plt.subplots(2, 2)
cm = ['RdBu_r', 'viridis']
for col in range(2):
for row in range(2):
ax = axs[row, col]
pcm = ax.pcolormesh(np.random.random((20, 20)) * (col + 1),
cmap=cm[col])
fig.colorbar(pcm, ax=ax)
plt.show()
第一列在两行中都有相同类型的数据,因此可能需要结合颜色栏,我们通过调用 Figure.colorbar
使用轴列表而不是单个轴。
fig, axs = plt.subplots(2, 2)
cm = ['RdBu_r', 'viridis']
for col in range(2):
for row in range(2):
ax = axs[row, col]
pcm = ax.pcolormesh(np.random.random((20, 20)) * (col + 1),
cmap=cm[col])
fig.colorbar(pcm, ax=axs[:, col], shrink=0.6)
plt.show()
使用这种模式,相对复杂的颜色条布局是可能的。注意,这个例子在 constrained_layout=True
fig, axs = plt.subplots(3, 3, constrained_layout=True)
for ax in axs.flat:
pcm = ax.pcolormesh(np.random.random((20, 20)))
fig.colorbar(pcm, ax=axs[0, :2], shrink=0.6, location='bottom')
fig.colorbar(pcm, ax=[axs[0, 2]], location='bottom')
fig.colorbar(pcm, ax=axs[1:, :], location='right', shrink=0.6)
fig.colorbar(pcm, ax=[axs[2, 1]], location='left')
plt.show()
脚本的总运行时间: (0分2.656秒)