我建议你自己定制颜色图来解决这个问题from matplotlib.colors import LinearSegmentedColormap
data = np.array([[1, 0, 0, 1],
[0, 0, 1, 1],
[0, 0, 0, 1]])
colorInformation = np.array([[0.1, 0.12, 0.02, 0.01],
[0.12, 0.15, 0.18, 0.2],
[0.3, 0.34, 0.41, 0.32]])
alpha_up=abs(((data*2-1)*colorInformation).max())
alpha_low=abs(((data*2-1)*colorInformation).min())
mid=alpha_low/(alpha_up+alpha_low)
cdict1 = {'red': ((0.0, 1.0, 1.0),
(mid, 1.0, 0.0),
(1.0, 0.0, 0.0)),
'green': ((0.0, 0.0, 0.0),
(1.0, 0.0, 0.0)),
'blue': ((0.0, 0.0, 0.0),
(mid, 0.0, 1.0),
(1.0, 1.0, 1.0)),
'alpha': ((0.0, alpha_low, alpha_low),
(mid, 0.0, 0.0),
(1.0, alpha_up, alpha_up))
red_blue = LinearSegmentedColormap('red_blue', cdict1)
fig, ax = plt.subplots()
heatmap = ax.pcolormesh((data*2-1)*colorInformation, cmap=red_blue)
或者你可以只改变红色和蓝色而不用阿尔法通道。在
我建议你自己定制颜色图来解决这个问题from matplotlib.colors import LinearSegmentedColormapdata = np.array([[1, 0, 0, 1],[0, 0, 1, 1],[0, 0, 0, 1]])colorInformation = np.array([[0.1, 0.12, 0.02, 0.01],[0.12, 0.15, 0.18, ...
用
pc
ol
or可以来画2维图,即有两个自变量x,y,和一个因变量C。注意的点:
pc
ol
or是用格点来表示C值。故应先用np.m
esh
grid(x,y)来生成二维的x和y坐标点。
C的行索引对应y坐标,列索引对应x坐标。所以画图时,一般将计算好的C转置。
pc
ol
or和
pc
ol
or功能是相同的,官方文档建议用
pc
ol
orm
esh
,它的速度会更快。
def f(x,y):
return (x**2+y-11)**2+(x+y**2-7)**2
x = np.linspace(-
b站:https://space.bilibili.com/36070349?spm_id_from=333.1007.0.0 知乎:https://www.zhihu.com/people/li-shao-zhuo-19
07-25
在机器学习中如果要对训练好的分类器进行分类辩解的可视化,就需要用到
matplotlib
.pyplot.
pc
ol
orm
esh
()这一方程
其description为:‘Create a pseudoc
ol
or plot with a non-regular rectangular grid.’方法中的
pc
ol
or一词为pseudoc
ol
or缩写,中文翻译为伪色彩。
伪彩色图像的含义是,每个像素的
颜色
不是由每个基色分量的数值直接决定,而是把像素值当作彩色查找表(c
ol
or look-up table,CLU
Python
的
Matplotlib
库提供了多种
颜色
选项,包括预定义的
颜色
名称、RGB值、十六进制值等。可以使用这些选项来设置线条、点、填充等元素的
颜色
。
以下是一些常用的
颜色
选项:
1. 预定义的
颜色
名称:例如,'red'表示红色,'blue'表示蓝色,'green'表示绿色等。
2. RGB值:使用三个整数表示红、绿、蓝三个
颜色
通道的强度,例如(255, , )表示红色,(, 255, )表示绿色,(, , 255)表示蓝色。
3. 十六进制值:使用六个十六进制数字表示红、绿、蓝三个
颜色
通道的强度,例如'#FF000'表示红色,'#00FF00'表示绿色,'#000FF'表示蓝色。
除了这些基本选项外,
Matplotlib
还提供了一些其他的
颜色
选项,例如使用c
ol
orm
ap来设置渐变色等。