我正在用散点图来绘制一个热图。我使用Greys彩色地图将密集区域显示为黑色,而光线区域显示为白色。因此,具有较多xy点的区域是黑色的,而xy值较少的区域是白色的。
这很好,但是对于这个应用程序来说,没有数据的区域太白了。因为我在地图上显示了背景数据,如果地图太白,很难看到这些数据。
因此,我试图创建一个彩色地图,黑白之间的对比并不是很好。我想把它放在黑色和浅灰色之间。
初始代码如下所示:
import matplotlib.pyplot as plt
import numpy as np
import random
x = [random.randrange(1,101,1) for _ in range (10)]
y = [random.randrange(1,101,1) for _ in range (10)]
fig, ax1 = plt.subplots()
ax1.grid(False)
data1,x,y,p = plt.hist2d(x,y, bins = 10, range = np.array([(0,80), (0,80)]))
ax1.imshow(data1, interpolation = 'gaussian', origin = 'lower', extent = [0,100,0,100], cmap = 'Greys')

没有xy数据的区域是非常白的,在这些区域中显示的任何东西都很难看到。所以我进口了我自己的彩色地图,最轻的颜色是灰色。
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", ["gainsboro","lightgrey","lightgrey","silver","silver","darkgray","darkgray","gray","gray","dimgray","dimgray","black","black"])这没问题,但我想要从黑色到浅灰色的更大的对比。具体来说,我想把它变成浅灰色。没有数据的区域(将是白色的)太暗。它只会从灰色变成黑色。

有没有另一种方法来创建一个颜色地图,在颜色上有更大的对比度,而不是完全变成白色。我知道这听起来很模糊,但我希望它能从黑色变成很浅的灰色。有没有一种手动播放对比的方法?
发布于 2018-04-24 03:46:18
还可以使用相同的方法使用起始颜色和结束颜色创建颜色映射。因此,可以使用LinearSegmentedColormap.from_list()方法创建从浅灰到黑色的颜色图。
从一个颜色序列制作一个线性的分段彩色地图,从val=0的颜色到val=1的颜色-1。n是rgb量化级别的数目。
因此,颜色图可以这样定义:
cmap = clr.LinearSegmentedColormap.from_list('custom greys', [(.9,.9,.9),(0,0,0)], N=256)颜色极值在rgb元组中,其中(1,1,1)是白色,(0,0,0,0)是黑色。
https://stackoverflow.com/questions/49850429
复制相似问题