Ciclismo attraverso la lista dei linestyles quando si traccia colonne di una matrice in matplotlib

StackOverflow https://stackoverflow.com//questions/23000578

  •  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.

È stato utile?

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))))]
.

Inserisci Descrizione dell'immagine qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top