Warum spielt matplotlib.PatchCollection mit der Farbe der Patches?

Ich mache eine Reihe von Patches wie folgt -

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)

Und ursprünglich habe ich sie einfach so direkt auf meine Achse gelegt -

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

Das hat gut funktioniert. Aber jetzt möchte ich sie in eine PatchCollection einfügen und diese PatchCollection auf die Achse setzen. Wenn ich das mache, sind alle meine Formen nur blau. Ich verstehe nicht, wie nur das Einfügen in eine Sammlung die Farbe irgendwie ändert. Kann mir jemand helfen, was ich tun muss, um die Farbwerte, die ich als Gesichtsfarbe für die Patches eingebe, beizubehalten?

Der neue Code ist -

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) 

Antworten auf die Frage(1)

Ihre Antwort auf die Frage