J'essaye de tracer deux variables où N = 700K. Le problème est qu'il y a trop de chevauchement, de sorte que l'intrigue devient principalement un bloc solide de noir. Existe-t-il un moyen d'avoir un "nuage" en niveaux de gris où l'obscurité du tracé est fonction du nombre de points dans une région? En d'autres termes, au lieu d'afficher des points individuels, je veux que le tracé soit un "nuage", avec plus il y a de points dans une région, plus cette région est sombre.
r
scatter-plot
utilisateur702432
la source
la source
Réponses:
Une façon de résoudre ce problème est d'utiliser le mélange alpha, qui rend chaque point légèrement transparent. Ainsi, les régions apparaissent plus sombres sur lesquelles plus de points sont tracés.
C'est facile à faire dans
ggplot2
:Un autre moyen pratique de gérer cela est (et probablement plus approprié pour le nombre de points que vous avez) est le regroupement hexagonal:
Et il y a aussi un ancien binning rectangulaire régulier (image omise), qui ressemble plus à votre carte thermique traditionnelle:
la source
scale_fill_gradient()
et spécifiez vos propres couleurs basses et hautes, ou utilisezscale_fill_brewer()
et choisissez parmi l'une des palettes séquentielles.geom_point()
et tracer chaque point individuel.Vous pouvez également consulter le
ggsubplot
package. Ce package implémente des fonctionnalités qui ont été présentées par Hadley Wickham en 2011 ( http://blog.revolutionanalytics.com/2011/10/ggplot2-for-big-data.html ).(Dans ce qui suit, j'inclus la couche "points" à des fins d'illustration.)
Cependant, cela fonctionne si vous avez une troisième variable à contrôler.
Ou une autre approche serait d'utiliser
smoothScatter()
:la source
Un aperçu de plusieurs bonnes options dans
ggplot2
:Option A: points transparents
Option B: ajouter des contours de densité
Option C: ajouter des contours de densité remplis
Option D: carte thermique de densité
Option E: hexbins
Option F: tapis
Combinez en un seul chiffre:
la source
Le mélange alpha est également facile à faire avec les graphiques de base.
Les six premiers chiffres après le
#
sont la couleur en hexadécimal RVB et les deux derniers sont l'opacité, encore une fois en hexadécimal, donc 33 ~ 3 / 16ème opaque.la source
Vous pouvez également utiliser des courbes de niveau de densité (
ggplot2
):Ou combinez les contours de densité avec le mélange alpha:
la source
Vous pouvez trouver utile le
hexbin
package. Depuis la page d'aide dehexbinplot
:la source
geom_pointdenisty
duggpointdensity
package (récemment développé par Lukas Kremer et Simon Anders (2019)) vous permet de visualiser la densité et les points de données individuels en même temps:la source
Ma méthode préférée pour tracer ce type de données est celle décrite dans cette question - un diagramme de densité de dispersion . L'idée est de faire un nuage de points mais de colorer les points par leur densité (grosso modo, la quantité de chevauchement dans cette zone).
Il simultanément:
Voici le résultat de la première réponse à la question liée:
la source
R
.