Matplotlib 颜色图范围
Matplotlib colormap range
我正在尝试了解 matplotlib
颜色图的工作原理。考虑以下代码:
import matplotlib.pyplot as plt
cmap = plt.get_cmap('jet')
print cmap(200)
打印
(1.0, 0.46550472040668145, 0.0, 1.0)
所以我的理解是颜色图将数值(在本例中为 200)映射到颜色值(在本例中为 1.0、0.46550472040668145、0.0、1.0)。 matplotlib 如何为其颜色图设置范围?
是否可以定义应用线性映射的最大值和最小值?使用 imshow()
可以设置 vmin
和 vmax
参数,但是,我必须在颜色图级别进行设置,因为稍后我将颜色图提供给另一个函数。
这可能是一个关于颜色图如何工作的更普遍的问题;例如,在 seaborn
的调色板中,也没有范围选项。
颜色图的范围始终介于 0 和 1 之间。您需要将数据标准化到该范围。例如,要将 0 到 400 之间的范围线性映射到颜色图的颜色,
import matplotlib.pyplot as plt
cmap = plt.get_cmap('viridis')
norm = plt.Normalize(0, 400)
color = cmap(norm(200.))
我正在尝试了解 matplotlib
颜色图的工作原理。考虑以下代码:
import matplotlib.pyplot as plt
cmap = plt.get_cmap('jet')
print cmap(200)
打印
(1.0, 0.46550472040668145, 0.0, 1.0)
所以我的理解是颜色图将数值(在本例中为 200)映射到颜色值(在本例中为 1.0、0.46550472040668145、0.0、1.0)。 matplotlib 如何为其颜色图设置范围?
是否可以定义应用线性映射的最大值和最小值?使用 imshow()
可以设置 vmin
和 vmax
参数,但是,我必须在颜色图级别进行设置,因为稍后我将颜色图提供给另一个函数。
这可能是一个关于颜色图如何工作的更普遍的问题;例如,在 seaborn
的调色板中,也没有范围选项。
颜色图的范围始终介于 0 和 1 之间。您需要将数据标准化到该范围。例如,要将 0 到 400 之间的范围线性映射到颜色图的颜色,
import matplotlib.pyplot as plt
cmap = plt.get_cmap('viridis')
norm = plt.Normalize(0, 400)
color = cmap(norm(200.))