【发布时间】:2017-05-18 14:40:38
【问题描述】:
我已经创建了一个这样的颜色图:
cdict = { 'red': [], 'green': [], 'blue': [] }
def addSect(pos, sect):
for col in ('red', 'green', 'blue'):
v = sect.pop(0)
cdict[col].append((pos, v, v))
colSects = [(0.0, [0,0,1]) , (0.25, [0,1,1]) , (0.25, [0,1,1]) , (0.5, [0,1,0]) , (0.5, [0,1,0]) , (0.75, [1,1,0]) , (0.75, [1,1,0]) , (1.0, [1,0,0])]
for idx in range(len(colSects)):
sect, col = colSects[idx]
addSect(sect, col)
cmap = LinearSegmentedColormap('Fire', cdict)
这将很好地定义从蓝色到绿色到红色的彩虹色图。
现在我的问题是我需要在这张彩色地图的某处使用黑色标记。乍一看,以下内容看起来不错:
这是通过插入黑色边框来实现的
colSects.insert(1, (0.2, [0,1,1]))
colSects.insert(2, (0.2, [0,0,0]))
colSects.insert(3, (0.22, [0,0,0]))
colSects.insert(4, (0.22, [0,1,1]))
但确实没那么简单。将标记放在更左侧时
colSects.insert(1, (0.1, [0,1,1]))
colSects.insert(2, (0.1, [0,0,0]))
colSects.insert(3, (0.12, [0,0,0]))
colSects.insert(4, (0.12, [0,1,1]))
它产生
您会看到绿松石部分现在被拉伸了。但我需要如上背景中的彩虹。我可能需要在替换部件上获取颜色并在我的insert 语句中使用这些颜色。但这将涉及很多 if 子句。我的问题:有没有一种简单的方法可以根据需要设置标记?
【问题讨论】:
-
澄清一下,您想在颜色栏中添加一个标记,还是想在颜色图中添加一些黑色区域?
-
@ImportanceOfBeingErnest 它应该是一个窄条,因此绘图会突出显示该区域。它是彩色地图的一部分。
-
@ImportanceOfBeingErnest 它是颜色图的一部分...
标签: python matplotlib colors