Ciclismo attraverso la lista dei linestyles quando si traccia colonne di una matrice in matplotlib
-
20-12-2019 - |
Domanda
Probabilmente mi manca qualcosa di ovvio.Sto pianificando i dati contenuti nelle colonne di una matrice in una singola chiamata usando
plot(x,A)
.
Dov'è x
è un Arange 1D Numpy con una lunghezza pari al numero di righe di A.
I lineplots che generano sono tutte le linee complete con un ciclo di colori attraverso il ciclo di colore predefinito impostato in matplotlib.rc
So che posso modificare il ciclo del colore (e può anche avere un singolo colore e linestyle per tutte le colonne).Tuttavia, come posso andare in bicicletta solo gli stili di linea (diciamo attraverso il pieno, tratteggiato, tratteggiato, punteggiato) e non il colore (voglio tenerlo nero) e mantengo ancora la semplice chiamata a trama singola?
plot(x,A,['k-','k--','k-.','k:'])
.
non funziona.
Soluzione
La correlata sorgente è in class _process_plot_var_args()
in axes.py
, come puoi vedere, è definito solo il ciclo del colore.Un ciclo di Linestyle simile non è possibile.
Pertanto dobbiamo fare questi:
A=range(10)
B=np.random.randn(10,12)
p_list=plt.plot(A, B)
line_cycle=['-','--','-.',':']
_=[l.set_linestyle(st) for l, st in zip(p_list, np.repeat(line_cycle, 1+(len(p_list)/len(line_cycle))))]
.