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
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()
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
ehatch.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.
Grazie mille! Questo è esattamente ciò di cui ho bisogno. –
Hai suggerimenti anche per la legenda? Ho ancora il portello rosso e bordi rossi lì –
Aggiungi alla legenda patch con bordi neri. – Serenity