2016-07-11 15 views
-2

Wie kann ich eine Grafik in R mit ggplot2 erstellen, die dunkler ist, wo es mehr Punkte gibt und transparenter, wo es weniger Punkte gibt? Ich habe versucht, ein geom_hex-Plot mit einem Gradienten zu erstellen, aber es ignoriert Alpha-Werte.Plot mit dunklerer Farbe für dichtere Bereiche und transparente Farbe für weniger dichte Bereiche

+0

Können Sie bitte Daten und/oder Code enthalten, der uns mit einem [reproduzierbaren Beispiel] liefert (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r- reproduzierbares Beispiel)? –

+0

@BenBolker Ich habe nur 3000+ x y Datenpunkte. – 2426021684

+0

müssen Sie 'alpha' und' fill' in 'aes()' setzen –

Antwort

2
set.seed(101) 
dd <- data.frame(x=rnorm(3000),y=rnorm(3000)) 
library(ggplot2); theme_set(theme_bw()) 

Set Alpha auf Punkte, natürliche Überlappung:

ggplot(dd,aes(x,y))+geom_point(alpha=0.1,size=8) 

(hergestellt Punkte größere Überlappung zu erhalten)

Oder:

ggplot(dd,aes(x,y))+stat_density_2d(geom="raster", 
       aes(alpha = ..density..), contour = FALSE)+ 
    scale_x_continuous(expand=c(0,0))+ 
    scale_y_continuous(expand=c(0,0)) 

Noch auf geom_hex arbeiten ... Ich kann nicht wirklich herausfinden, wie man das macht ... aes(alpha=..count..) scheint, als ob es shou ld Arbeit basiert auf R ggplot geom_hex alpha transparency, aber ??

## fails with ggplot 2.1.0 ... ? 
ggplot(dd,aes(x,y))+ 
    geom_hex(aes(alpha=log(..count..))) 
+0

Ich am Ende mit einer Menge von Linien für die zweite Option. Gibt es eine Möglichkeit, es kontinuierlich zu machen? – 2426021684

+0

Entschuldigung, ich verstehe deine Frage nicht. Können Sie bitte Ihrer Anfrage Daten hinzufügen und/oder einen Code hinzufügen, der mir ein [reproduzierbares Beispiel] liefert (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible- Beispiel)? –

+0

Macht nichts. Ich musste nur die Größe erhöhen. Es sieht jetzt gut aus. Danke für Ihre Hilfe. – 2426021684