我正在尝试在matplotlib中重新创建下面显示的颜色条
下面以RGB格式给出了不同的颜色
[[255, 255, 255],
[160, 160, 160],
[133, 231, 137],
[105, 191, 104],
[207, 216, 255],
[0, 0, 199],
[255, 255, 0],
[205, 0, 0]]
每种颜色都是明显渐变的开始和结束......所以"白色到灰色"色图的一部分从[255,255,255]到[160,160,160]
为方便起见,我们可以说颜色条的灰色部分从0到0.2,绿色从0.2到0.333(1/3),蓝色从1/3到2/3,黄色 - 红色从2到2 / 3比1。
谢谢!
答案 0 :(得分:1)
创建色彩映射的最简单方法是matplotlib.colors.LinearSegmentedColormap.from_list()
。您不仅可以提供颜色列表,还可以提供(值,颜色)元组列表,以便考虑不同的颜色间距。
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors
colors = [[255, 255, 255],
[160, 160, 160],
[133, 231, 137],
[105, 191, 104],
[207, 216, 255],
[0, 0, 199],
[255, 255, 0],
[205, 0, 0]]
colors = np.array(colors)/255.
bins = [0,0.2,.2,.333,.333,.666,.666,1]
color_list = list(zip(bins,colors))
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("", color_list)
a = np.linspace(0,1)
plt.imshow(np.atleast_2d(a), cmap=cmap)
plt.show()