我正在使用 matplotlib PatchCollection 来保存一堆 matplotlib.patches.Rectangles。但是我希望它们在第一次绘制时不可见(仅在单击其他内容时才可见)。当我使用 add_artist 将矩形直接绘制到画布上时,这可以正常工作,但我想将其更改为使用 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。但是当它们被绘制时,它们是清晰可见的。如果有人可以帮助我了解为什么会发生这种情况,我将不胜感激。