parcourir la liste des styles de ligne lors du traçage des colonnes d'une matrice dans matplotlib
-
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.
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))))]