我正在尝试使用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)