2014-10-15 30 views
5

Ich habe ein 2D-Hexagon-Dichtediagramm mit vielen Punkten. Ich möchte, dass die Zählungen innerhalb der Sechsecke auf einer logarithmischen Skala angezeigt werden, aber ich kann nicht herausfinden, wie man dies durch ggplot2 macht.Wie stat_binhex auf einer logarithmischen Skala in ggplot2 dargestellt wird

Hier ist ein einfaches Beispiel:

x <- runif(1000, 50, 100) 
y <- rnorm(1000, mean = 10, sd = 8) 

df <- as.data.frame(cbind(x, y)) 

ggplot(df, aes(x, y)) + stat_binhex() 

Antwort

7

Es gibt eine fill Ästhetik, die standardmäßig auf ..count.., wenn Sie angeben, es nicht in stat_binhex. Der folgende Code erzeugt dasselbe Diagramm wie Ihr ursprünglicher Code.

ggplot(df, aes(x, y)) + stat_binhex(aes(fill=..count..)) 

enter image description here

Wenn Sie eine Log-Skala für Zählungen haben wollen, dann ist die Lösung recht einfach:

ggplot(df, aes(x, y)) + stat_binhex(aes(fill=log(..count..))) 

enter image description here

+2

Das ist nicht für mich arbeiten in ggplot2_2.1.0: Fehler in eval (expr, envir, enclos): Objekt 'count' nicht gefunden – daknowles

+1

@daknowles Dies wird höchstwahrscheinlich durch einen Fehler in ggplot2 verursacht: [# 1608] (https : //github.com/hadley/ggplot2/issues/1608) – FloE