首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >手动创建颜色图

手动创建颜色图
EN

Stack Overflow用户
提问于 2018-04-16 05:55:58
回答 1查看 1.7K关注 0票数 3

我正在用散点图来绘制一个热图。我使用Greys彩色地图将密集区域显示为黑色,而光线区域显示为白色。因此,具有较多xy点的区域是黑色的,而xy值较少的区域是白色的。

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

因此,我试图创建一个彩色地图,黑白之间的对比并不是很好。我想把它放在黑色和浅灰色之间。

初始代码如下所示:

代码语言:javascript
复制
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数据的区域是非常白的,在这些区域中显示的任何东西都很难看到。所以我进口了我自己的彩色地图,最轻的颜色是灰色。

代码语言:javascript
复制
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", ["gainsboro","lightgrey","lightgrey","silver","silver","darkgray","darkgray","gray","gray","dimgray","dimgray","black","black"])

这没问题,但我想要从黑色到浅灰色的更大的对比。具体来说,我想把它变成浅灰色。没有数据的区域(将是白色的)太暗。它只会从灰色变成黑色。

有没有另一种方法来创建一个颜色地图,在颜色上有更大的对比度,而不是完全变成白色。我知道这听起来很模糊,但我希望它能从黑色变成很浅的灰色。有没有一种手动播放对比的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-24 03:46:18

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

从一个颜色序列制作一个线性的分段彩色地图,从val=0的颜色到val=1的颜色-1。n是rgb量化级别的数目。

因此,颜色图可以这样定义:

代码语言:javascript
复制
cmap = clr.LinearSegmentedColormap.from_list('custom greys', [(.9,.9,.9),(0,0,0)], N=256)

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49850429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档