Visualisation des nuages de points avec chevauchement des points de matplotlib
J'ai pour représenter environ 30 000 points dans un nuage de points dans matplotlib. Ces points appartiennent à deux classes différentes, je tiens donc à décrire avec des couleurs différentes.
J'ai réussi à le faire, mais il y a un problème. Les points de chevauchement dans de nombreuses régions, et la classe que je dépeins pour la dernière sera visible sur le dessus de l'autre, de le cacher. En outre, avec le nuage de points n'est pas possible de montrer combien les points se trouvent dans chaque région.
J'ai également essayé de faire un histogramme 2d avec histogram2d et imshow, mais il est difficile de montrer les points appartenant à deux classes, de façon claire.
Pouvez-vous suggérer une manière de rendre clair à la fois la distribution des classes et de la concentration des points?
EDIT: Pour être plus clair, c'est le
lien à mon fichier de données au format "x,y,classe"
J'ai essayé d'utiliser histogram2d et imshow avec alpha pour que les deux se chevauchent histogrammes, mais le résultat semble être de très mauvaise qualité
Avez-vous essayé de montrer les histogrammes à l'aide de contour au lieu de fusion alpha? matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.contour
ne pas ajouter du bruit à vos données, c'est de franchir la ligne en immoral de manipulation de données.
Il est de franchir la ligne en immoral de manipulation de données si et seulement si vous le cacher.
OriginalL'auteur markusian | 2013-09-28
Vous devez vous connecter pour publier un commentaire.
Une approche consiste à tracer les données comme un nuage de points avec un alpha de faible, de sorte que vous pouvez voir les différents points ainsi qu'une mesure approximative de la densité. (L'inconvénient de cette est que l'approche a une gamme limitée de chevauchement, il peut montrer -- c'est à dire, une densité maximale de l'ordre de 1/alpha.)
Voici un exemple:
Comme vous pouvez l'imaginer, en raison de la portée limitée de chevauchements, qui peut être exprimé, il y a un compromis à trouver entre la visibilité des points individuels et l'expression de la quantité de chevauchement (et la taille du marqueur, terrain, etc).
(Je suppose ici que vous avez voulu dire 30e3 points, pas 30e6. Pour 30e6, je pense que certains type de la moyenne de la densité de l'intrigue serait nécessaire.)
OriginalL'auteur tom10
Vous pouvez également colorer les points en calculant d'abord un noyau de la densité de l'estimation de la distribution de l'éparpillement, et en utilisant les valeurs de densité pour spécifier une couleur pour chaque point du nuage de points. Modifier le code dans l'exemple précédent :
J'ai appris cette astuce il y a un moment quand j'ai remarqué la documentation de l'éparpillement de la fonction --
OriginalL'auteur vishakad