私はmatplotlibPatchCollectionを使用して、matplotlib.patches.Rectanglesの束を保持しています。ただし、最初に描画したときに非表示にする必要があります(他の何かがクリックされたときにのみ表示されます)。これは、add_artistを使用してRectangleをキャンバスに直接描画していたときに正常に機能しますが、これをPatchCollectionを使用するように変更したいと思います。何らかの理由で、PatchCollectionを作成し、それをadd_collectionで追加すると、それらはすべて表示されます。
self.plotFigure = Figure()
self.plotAxes = self.plotFigure.add_subplot(111)
self.selectionPatches = []
for node in self.nodeList:
node.selectionRect = Rectangle((node.posX - node.radius*0.15 , node.posY - node.radius*0.15),
node.radius*0.3,
node.radius*0.3,
linewidth = 0,
facecolor = mpl.colors.ColorConverter.colors['k'],
zorder = z,
visible = False)
self.selectionPatches.append(node.selectionRect)
self.p3 = PatchCollection(self.selectionPatches, match_original=True)
self.plotAxes.add_collection(self.p3)
self.selectionPatchesを繰り返し処理し、各Rectangleのget_visible()を出力すると、falseが返されます。しかし、描かれるとはっきりと見えます。なぜこれが起こっているのかを誰かが私に理解するのを手伝ってくれるなら、私は非常に感謝するでしょう。