Comment puis-je faire un nuage de points colorés par la densité de matplotlib?
Je voudrais faire un nuage de points où chaque point est influencée par la densité spatiale des points voisins.
Je suis tombé sur une question très semblable, ce qui montre un exemple de ce à l'aide de R:
R nuage de points: la couleur du symbole représente le nombre de points qui se chevauchent
Quelle est la meilleure façon d'accomplir quelque chose de similaire en python à l'aide de matplotlib?
- Salut! Les gens ont été downvoting vous probablement parce que vous n'avez pas de réécrire la question ou donner n'importe quel contexte, ni ne vous montrez toute tentative de faire la chose vous-même. Envisager la modification de la question pour être auto-suffisant (pas juste un lien), et pour les questions d'avenir, veuillez faire une tentative avant de poster.
Vous devez vous connecter pour publier un commentaire.
En plus de
hist2d
ouhexbin
comme @askewchan suggéré, vous pouvez utiliser la même méthode que l'on a accepté de répondre aux questions liées aux utilisations.Si vous voulez le faire:
Si vous souhaitez que les points à tracer dans l'ordre de densité, de sorte que le plus dense de points sont toujours au top (similaire à la lié exemple), il suffit de les trier par le z-valeurs. Je vais aussi utiliser une plus petite taille de marqueur ici que ça ressemble un peu mieux:
plt.colorbar()
, ou si vous préférez être plus explicite, necax = ax.scatter(...)
et puisfig.colorbar(cax)
. Être conscient que les unités sont différentes. Cette méthode permet d'estimer la fonction de distribution de probabilité pour les points, de sorte que les valeurs entre 0 et 1 (et généralement de ne pas être très proche de 1). Vous pouvez convertir à quelque chose de plus proche de l'histogramme des comptes, mais elle prend un peu de travail (vous devez connaître les paramètres quigaussian_kde
estimée à partir des données).Vous pourriez faire un histogramme:
Aussi, si le nombre de point de KDE calcul trop lent, la couleur peut être interpolée dans np.histogram2d :