我用这个构造函数创建了一堆 RegularPolygons -
node.brushShape = RegularPolygon((node.posX, node.posY),
6,
node.radius * 0.8,
linewidth = 3,
edgecolor = (1,1,1),
facecolor = 'none',
zorder = brushz)
如您所见,我希望这些补丁的边缘是白色的。我将它们全部放入一个名为 BrushShapes 的列表中,然后创建一个 PatchCollection -
self.brushShapesPC = PatchCollection(self.brushShapes, match_original=True)
这种方法可以很好地保持边缘为白色。但是,现在我想使用用户定义的颜色图 -
colormap = {'red': ((0.0, 0.0, 0.0),
(0.25,0.0, 0.0),
(0.5, 0.8, 1.0),
(0.75,1.0, 1.0),
(1.0, 0.4, 1.0)),
'green': ((0.0, 0.0, 0.0),
(0.25,0.0, 0.0),
(0.5, 0.9, 0.9),
(0.75,0.0, 0.0),
(1.0, 0.0, 0.0)),
'blue': ((0.0, 0.0, 0.4),
(0.25,1.0, 1.0),
(0.5, 1.0, 0.8),
(0.75,0.0, 0.0),
(1.0, 0.0, 0.0))}
所以现在我的 PatchCollection 实例化是 -
self.brushShapesPC = PatchCollection(self.brushShapes, cmap=mpl.colors.LinearSegmentedColormap('SOMcolormap', self.colormap))
但是现在边缘的颜色和脸一样!所以我需要做的是 - 使用新的颜色图确定白色的值是什么......并更改
edgecolor = (1,1,1)
到
edgecolor = (whatever_white_is)
在这个构造函数中 -
node.brushShape = RegularPolygon((node.posX, node.posY),
6,
node.radius * 0.8,
linewidth = 3,
edgecolor = (1,1,1),
facecolor = 'none',
zorder = brushz)
是对的吗?我很难确定白色的价值是什么。当我调出一个颜色条时,它显示白色就在中心...所以我尝试了 (0.5, 0.5, 0.5), (0,1,0) 等。谁能帮我弄清楚我应该怎么做放?有没有一种通用的方法可以知道任何给定颜色图的白色是什么?