I make a number of patches like so -
node.shape = RegularPolygon((node.posX, node.posY), 6, radius = node.radius
self.p = PatchCollection(self.patches, match_original=True)
By default patch collection over-rides the given color (doc) for the purposes of being able to apply a color map, cycle colors, etc. This is a collection level feature (and what powers the code behind scatter plot).
collection