2016-07-03 33 views
8

Vorrei disegnare una barra in matplotlib con bianco come colore di riempimento, rosso come colore di tratteggio e nero come colore del bordo. Tuttavia, sembra che il colore del bordo cambi anche il colore del tratteggio. Quindi, non sono in grado di disaccoppiare il colore dei bordi e del tratteggio. Hai qualche suggerimento? Grazie.Come disaccoppiare tratteggio e colore del bordo in matplotlib?

risposta

10

Trama bar trama due volte:

import matplotlib.pyplot as plt 
from matplotlib.patches import Ellipse, Polygon 

fig = plt.figure() 
ax1 = fig.add_subplot(111) 
# draw hatch 
ax1.bar(range(1, 5), range(1, 5), color='none', edgecolor='red', hatch="/", lw=1., zorder = 0) 
# draw edge 
ax1.bar(range(1, 5), range(1, 5), color='none', edgecolor='k', zorder=1, lw=2.) 

ax1.set_xticks([1.5, 2.5, 3.5, 4.5]) 
plt.show() 

enter image description here

+0

Grazie mille! Questo è esattamente ciò di cui ho bisogno. –

+0

Hai suggerimenti anche per la legenda? Ho ancora il portello rosso e bordi rossi lì –

+0

Aggiungi alla legenda patch con bordi neri. – Serenity

3

In Matplotlib 2.0 è ora possibile configure the hatch colour directly con rcParams.

Il colore e la larghezza delle linee in un modello di tratteggio sono ora configurabile dalle rcParams hatch.color e hatch.linewidth, con valori predefiniti di punto nero e 1, rispettivamente ... Non c'è controllo di livello API del colore tratteggio o larghezza della linea.

I modelli di tratteggio vengono ora visualizzati con una densità uniforme, indipendentemente dal DPI. Precedentemente, le cifre DPI elevate sarebbero più dense di quelle predefinite e le cifre a basso DPI sarebbero meno densi. Questo vecchio comportamento non può essere ripristinato direttamente, ma la densità può essere aumentata ripetendo l'identificatore del tratteggio.

+2

che significa che posso solo tratteggiare in un colore per trama ... questo è fastidioso ... – mathause

+1

sembra essere in piallatura 2.0.1 https://github.com/matplotlib/matplotlib/issues/7901 – mathause

Problemi correlati