Durchlaufen der Liste der Linienstile beim Zeichnen von Spalten einer Matrix in Matplotlib

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

  •  20-12-2019
  •  | 
  •  

Frage

Wahrscheinlich übersehe ich etwas Offensichtliches.Ich zeichne die in den Spalten einer Matrix enthaltenen Daten in einem einzigen Aufruf mit auf

plot(x,A)

wo ist x ist ein 1D-Numpy-Bereich mit einer Länge, die der Anzahl der Zeilen von A entspricht.Die dadurch generierten Liniendiagramme sind alle vollständige Linien mit einer Farbe, die den in matplotlib.rc festgelegten Standardfarbzyklus durchläuft

Ich weiß, dass ich den Farbzyklus ändern kann (und sogar eine einzige Farbe und einen einzigen Linienstil für alle Spalten festlegen kann).Wie kann ich jedoch nur die Linienstile wechseln (z. B. durchgehend, gestrichelt, strichpunktiert, gepunktet) und nicht die Farbe (ich möchte sie schwarz lassen) und trotzdem den einfachen SINGLE-Plotaufruf beibehalten?

plot(x,A,['k-','k--','k-.','k:']) 

funktioniert nicht.

War es hilfreich?

Lösung

Die entsprechende Quelle finden Sie in class _process_plot_var_args() In axes.py, Wie Sie sehen, ist nur der Farbzyklus definiert.Ein ähnlicher Linienstilzyklus ist nicht möglich.

Deshalb müssen wir Folgendes tun:

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

enter image description here

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top