Bonjour,
J'ai un souci pour appeler la fonction plot de la bibli matplotlib.pyplot avec un suite de valeurs. Je m'explique.
Je lis une matrice NxN contenant des valeurs de 1 à 6 et je voudrais appeler la fonction plot pour dessiner des cercles de couleurs pour toutes les positions de ma matrice contenant un 1, une autre couleur pour les positions contenant un 2 etc... jusqu'à 6.
Si je lis la matrice point par point et qu'à chaque point j'affiche un cercle de la bonne couleur, les temps
de traitements sont beaucoup trop longs (20mn pour une matrice 1000x1000).
Je cherche donc à limiter le nombre d'appels de la fonction plot.
L'idée et d'appeler une fois la commande plot par couleur.
Cela donnerait quelque chose comme :
plt.plot(Coordonnées_X_Valant_0, Coordonnées_Y_Valant_0, 'ro')
plt.plot(Coordonnées_X_Valant_1, Coordonnées_Y_Valant_1, 'ro')
plt.plot(Coordonnées_X_Valant_2, Coordonnées_Y_Valant_2, 'ro')
....
plt.plot(Coordonnées_X_Valant_6, Coordonnées_Y_Valant_6, 'ro')
Ma question est donc : quelqu'un a-t-il une solution pour extraire les coordonnées x,y d'une matrice pour toutes les positions dont la valeur est égale à une valeur paramètre ?
Le résultat doit se présenté sous une succession de chiffres (les coordonnées) sans pour autant ne pas être ni une liste ni un tuple.
Le bon exemple de code est un exemple que j'ai trouvé sur les modèles matplotlib :
Mon besoin est de remplacer le np.arrange par Coordonnées_X_Valant_0 et le f(t1) par Coordonnées_Y_Valant_0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 def f(t): 'A damped exponential' s1 = np.cos(2 * np.pi * t) e1 = np.exp(-t) return s1 * e1 t1 = np.arange(0.0, 5.0, .2) l = plt.plot(t1, f(t1), 'ro') plt.setp(l, 'markersize', 30) plt.setp(l, 'markerfacecolor', 'C0') plt.show()
J'espère avoir été clair dans mon explication.
Merci.
Partager