小编典典

为什么matplotlib.PatchCollection会弄乱补丁的颜色?

python

我制作了许多这样的补丁-

node.shape = RegularPolygon((node.posX, node.posY),
                            6,
                radius = node.radius,
                                    edgecolor = 'none',
                                    facecolor = node.fillColor,
                                    zorder = node.zorder)

node.brushShape = RegularPolygon((node.posX, node.posY),
                            6,
                node.radius * 0.8,
                linewidth = 3,
                                    edgecolor = (1,1,1),
                                    facecolor = 'none',
                                    zorder = node.zorder)

最初我只是将它们像这样直接放在我的轴上-

self.plotAxes.add_artist(node.shape)
self.plotAxes.add_artist(node.brushShape)

很好。但是现在我想将它们放入PatchCollection中并将该PatchCollection放到轴上。但是,当我这样做时,我所有的形状都是蓝色。我不明白,只是放入一个收藏集会如何以某种方式改变颜色。有人可以帮我解决需要做哪些工作,以保持输入的色值作为色块的faceColor吗?

新代码是-

node.shape = RegularPolygon((node.posX, node.posY),
                        6,
            radius = node.radius,
                                edgecolor = 'none',
                                facecolor = node.fillColor,
                                zorder = node.zorder)

node.brushShape = RegularPolygon((node.posX, node.posY),
                        6,
            node.radius * 0.8,
            linewidth = 3,
                                edgecolor = (1,1,1),
                                facecolor = 'none',
                                zorder = node.zorder)

self.patches.append(node.shape)
self.patches.append(node.brushShape)


self.p = PatchCollection(self.patches) 
self.plotAxes.add_collection(self.p)

阅读 223

收藏
2020-12-20

共1个答案

小编典典

self.p = PatchCollection(self.patches, match_original=True)

默认情况下,补丁集会覆盖给定的颜色(doc),以便能够应用颜色图,循环色等。这是一个collection级别功能(以及为散点图后面的代码提供动力的功能)。

2020-12-20