parcourir la liste des styles de ligne lors du traçage des colonnes d'une matrice dans matplotlib

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

  •  20-12-2019
  •  | 
  •  

Question

Il me manque probablement quelque chose d'évident.Je trace les données contenues dans les colonnes d'une matrice en un seul appel en utilisant

plot(x,A)

où est x est un arrangement numpy 1D d'une longueur égale au nombre de lignes de A.Les tracés de ligne générés sont tous des lignes complètes avec une couleur circulant dans le cycle de couleur par défaut défini dans matplotlib.rc

Je sais que je peux modifier le cycle de couleurs (et même avoir une seule couleur et un seul style de ligne pour toutes les colonnes).Cependant, comment puis-je parcourir uniquement les styles de ligne (par exemple, complet, pointillé, pointillé, pointillé) et non la couleur (je veux la garder noire) tout en conservant le simple appel de tracé SINGLE ?

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

ça ne marche pas.

Était-ce utile?

La solution

La source correspondante est dans class _process_plot_var_args() dans axes.py, comme vous pouvez le constater, seul le cycle de couleur est défini.Un cycle de style de ligne similaire n'est pas possible.

Nous devons donc faire ceci :

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top