通过手动设置的规范/限制获取颜色图的颜色元组?

时间:2019-11-19 17:07:01

标签: python matplotlib plot

我知道可以通过执行以下操作来获取给定颜色图的标量值的RGBA元组:

from matplotlib import cm

rgba = cm.Blues(val)
print(rgba)

因此,我认为制作自定义连续颜色图很容易,该颜色图的色中心为零(0对应白色),其正值对应于红色,而负值对应于蓝色。这导致我进入以下示例代码:

import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np

X = np.linspace(0,3,15)
C = np.random.uniform(-1,1,15)
Y = X+C

c = np.zeros((15,4))

for ind,val in enumerate(C):
    if val >= 0:
        c[ind] = cm.Blues(val)
    elif val < 0:
        c[ind] = cm.Reds(val)

plt.scatter(X,Y,c=c)
plt.show()

问题是,我不知道如何切换颜色图的规范/色泽。从本质上讲,我该怎么做:

cm.Reds(value=scalar,
        clims=(0,7.43))

cm.Blues(value=scalar,
         clims=(0,-3.32))

在我的最终代码中,我将对Reds和Blues使用相同的标量范围的绝对长度。我只是想用我的伪代码来表达我的意思。是的,我该如何设置cmap的自定义范数,以便可以从标量值获取RGBA元组,以便可以对散点图进行颜色编码?

0 个答案:

没有答案