对不同值范围的不同数据应用相同的matplotlib cmap函数,具有特定的取值范围



我正在尝试使用matplotlib来实现跨不同数据集的特定值范围的一致颜色。所以,我想给出一个最小值和最大值的范围,并应用一个基于这个范围的cmap函数,我可以应用到不同的数据集,它给相同的值相同的颜色,它不适应特定数据集的值的范围。然而,当我给出一些值并且不将此范围应用于plt.imshow()函数时,我需要从函数中获得颜色,因为我不能将其用于我的情况。我想在这里证明我的观点:

import numpy as np
import matplotlib.pyplot as plt
dataset_a = np.linerange(0,1000)
dataset_b = np.linerange(0,10)
pal = plt.get_cmap("viridis")
colors_a = pal(dataset_a)
colors_b = pal(dataset_b) 

所以,我不希望在colors_a和colors_b对象中有完整的颜色范围,而是在两个数据集上应用相同的范围。

谢谢你的帮助!

可以通过vmin/vmax参数设置imshow的最小/最大值(参考imshow文档):

plt.imshow(DATA, vmin=0, vmax=1)

最新更新