gpt4 book ai didi

python - 手动创建颜色图

转载 作者:行者123 更新时间:2023-11-28 17:07:55 26 4
gpt4 key购买 nike

我正在使用散点图创建热图。我使用 Greys 颜色图将密集区域显示为黑色,将亮区显示为白色。因此,xy 点较多的区域为黑色,xy 点较少的区域为白色。

这工作正常,但没有数据的区域对于这个应用程序来说太白了。因为我在绘图上显示了背景数据,如果 map 太白,则很难看到这些数据。

因此,如果黑白之间的对比度不是那么好,我会尝试创建一个颜色图。我希望它介于黑色和非常浅的灰色之间。

初始代码如下:

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')

enter image description here

没有 xy 数据的区域非常白,这些区域显示的任何内容都很难看清。所以我导入了我自己的颜色图,最浅的颜色是灰色。

cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", ["gainsboro","lightgrey","lightgrey","silver","silver","darkgray","darkgray","gray","gray","dimgray","dimgray","black","black"])

这没问题,但我希望从黑色到浅灰色有更大的对比度。具体来说,我希望它变成浅灰色。没有数据的区域(应该是白色的)太暗了。它只会从灰色变为黑色。

enter image description here

是否有另一种方法可以创建具有更大颜色对比度但不会完全变成白色的颜色图。我知道这听起来很模糊,但我希望它会从黑色变成非常浅的灰色。有没有办法手动调整对比度?

最佳答案

也可以使用您使用的相同方法创建具有起始颜色和结束颜色的颜色图。因此,可以使用 LinearSegmentedColormap.from_list() 方法创建从浅灰色到黑色的颜色图。 :

Make a linear segmented colormap with name from a sequence of colors which evenly transitions from colors[0] at val=0 to colors[-1] at val=1. N is the number of rgb quantization levels.

因此,colormap可以这样定义:

cmap = clr.LinearSegmentedColormap.from_list('custom greys', [(.9,.9,.9),(0,0,0)], N=256)

极端颜色在 rgb 元组中,其中 (1,1,1) 是白色,(0,0,0) 是黑色。

关于python - 手动创建颜色图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49850429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com