web-dev-qa-db-fra.com

Comment définir la valeur alpha (transparence) de ggplot pour tous les points à la fois

library(data.table)
library(ggpolot2)

numPoints <- 10000
dt <- data.table(a=rnorm(numPoints),b=rnorm(numPoints))

qplot(a,b,data=dt, geom="point", alpha=1)
qplot(a,b,data=dt, geom="point", alpha=0.1)
qplot(a,b,data=dt, geom="point", alpha=0.01)

Quelle que soit la valeur alpha que je choisis, le graphique résultant semble avoir la même quantité de transparence.

Comment rendre les points plus transparents (pour que la densité des points dans une zone soit plus clairement visible)?

18
Rob Donnelly

Parce que le ... est autre esthétique transmise pour chaque couche, c'est-à-dire que vous ne définissez pas alpha vous le mappez sur une valeur qui est alors la même pour toutes les valeurs. Vous pouvez voir comment vous obtenez également une entrée de légende pour alpha sur le tracé. Il existe deux solutions:

1) Utilisez le I pour indiquer qu'il s'agit d'une esthétique d'ensemble;

qplot(a,b,data=dt, geom="point", alpha=I(0.1) )

2) Utilisez plutôt un ggplot et définissez l'esthétique dans le geom...

ggplot( dt , aes( a , b ) )+
  geom_point( alpha = 0.1 )

enter image description here Les deux appels produisent le même résultat.

39
Simon O'Hanlon