Salut,
Je pense pas que ce que je cherche à faire soit difficile mais je bloque depuis trop longtemps dessus.
Je veux visualiser une matrice ! ou un histogramme 2D quoi. Avec matplotlib, j'ai pas trouvé.
Merci de votre aide !
Mathieu
Salut,
Je pense pas que ce que je cherche à faire soit difficile mais je bloque depuis trop longtemps dessus.
Je veux visualiser une matrice ! ou un histogramme 2D quoi. Avec matplotlib, j'ai pas trouvé.
Merci de votre aide !
Mathieu
Si j'etais a ta place peut-etre c'est http://www.pythonware.com/products/pil/ que je vais essayer
merci mais c'est un soft pour traiter des images.
Je cherche tout simplement à plotter une matrice comme on pourrait le faire en 1 ligne en ROOT (j'aurais jamais pensé dire que ROOT était simple d'emploi !) :
TMatrix* mat;
mat = ...;
mat -> Draw();
des idées ?
pas d'idées ?
il faudrait passer par numarray comme je l'ai vu passer dans un sujet ?
help please !
mathieu
Sur la doc du site http://matplotlib.sourceforge.net/ma...lab.html#-hist
Bon un petit exemple fait en 2 sec :
Sympa matplotlib non ? 8)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 from pylab import * x=[1,2,3,6,2,0] hist(x,bins=10,normed=0,bottom=0) show()
J'èspere que ça pourra t'aider à +
oui ça marche pour un histo 1D mais pour un 2D ?
merci en tout cas !
Bonjour,
je n'ai pas la solution à votre problème, mais je pense que vous pouvez répondre au mien...
En fait je cherche créé un histogramme 2d à partir d'une image. Le principe est le suivant :
1- j'applique une gaussienne centré sur le centre de mon image afin de mettre plus de poids sur le centre de l'image...
2- Ensuite j'effectue un histo 1 D sur chaque zone d'interet récupéré apres le filtrage gaussien .
3-Créé l'histo 2D
Enfin ça c'est dans la théorie ... mais dans la pratique je ne sais pas du tout comment générer mon histogramme 2D sous matlab. Peut etre que vous avez des sites expliquant comment ça marche...
Je vous remercie tous d'avance
Ce sont les valeurs à trier.
je ne comprends pas vraiment ce que tu entends par "histogram1D" ou "2D"...
un histogram comme on l'entend par la fonction histogram de pylab ou de numpy
est un calcul d'effectif(h) d'une serie(x) dans des intervals(b).
et sa representation graphique peut etre obtenue par un barplot de pylab,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 h, b = numpy.histogram(x)
ou directement avec la fonction "hist" de pylab (qui retourne aussi h et b).
si tu veux representer visuellement les valeurs d'une matrice,
je crois qu'il existe une fonction de pylab qui te permet de creer une pseudo-image coloree par les valeurs de ta matrice. (voir doc)
inversement, si tu as une image,
PIL contient egalement une fonction histogram
qui te donne un histogram des valeurs de pixel.
ce qui revient au meme que de transformer ta matrice en vecteur
et d'en calculer l'histogram je suppose.
je ne sais pas si cela repond a ton probleme.
mais dans tous les cas, tu devrais essayer de definir plus clairement ce que tu cherches a faire. cela faciliterait le travail de ceux qui cherchent a t'aider.
Si tu as des couples de valeurs et que tu cherches à estimer leur densité de proba, tu te retrouves à faire un histogramme 2D
merci matthieu, je n'avais pas vu le probleme comme ca.
l'idee reste la meme. calcul d'effectif mais cette fois dans des intervals de R*R.
la 1ere chose a faire, est de regarder si numpy.histogram fonctionne en dimension n.
si ce n'est pas le cas, voila ce que je ferais pour depanner.
je n'ai pas teste:
soit x ta liste de couple de R*R.
- tri tes valeurs selon la 1ere dimenson
- transforme x en array de numpy pour faciliter les operations.
soit b1 et b2 les intervals dans chaque dimension.
- parcours la 1ere dimension (par interval de b1) -> sous population x[b1i]
- h(b1i, b2), b2 = histogram(x[b1i]) # ligne de la matrice h
-> h(b1i, b2j)
- tu te retrouves donc avec une matrice d'effectif de dimension 2 : h
h est une discretisation de ta loi de densite de probabilite si je ne m'abuse.
pour la visualiser:
- soit tu en fais une image 2D avec pylab (voir doc)
- soit tu traces un genre de nappe en 3D avec pylab (voir doc)
Il me semble qu'il y a une version nD quelque part
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager