2013-01-24 9 views
7

Faccio una serie di patch in questo modo -Perché matplotlib.PatchCollection ha problemi con il colore delle patch?

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) 

E in origine ero semplicemente inserendole direttamente sul mio asse come questo -

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

che ha funzionato bene. Ma ora voglio inserirli in un PatchCollection e posizionare quel PatchCollection sull'asse. Tuttavia, quando lo faccio, tutte le mie forme sono solo blu. Non capisco come solo mettere in una collezione stia cambiando il colore in qualche modo. Qualcuno può darmi una mano su ciò che devo fare per mantenere i valori dei colori che ho inserito come faceColor per i patch?

Il nuovo codice è -

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) 

risposta

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

Per impostazione predefinita raccolta di patch over-cavalca il colore dato (doc) ai fini di essere in grado di applicare una mappa a colori, i colori del ciclo, ecc è una funzionalità di livello collection (e ciò che alimenta il codice dietro lo scatter plot).

+0

Questo ha funzionato! Grazie mille! – Sterling

+0

@pceccon Grazie per aver catturato l'errore di ortografia. Ho risolto il problema, mi spiace che la modifica sia stata respinta. – tacaswell

Problemi correlati