2013-03-27 16 views
15

Ich bin über die Bedeutung der folgenden Varianten von geom_density in ggplot verwirrt:Wie interpretiere ich die verschiedenen ggplot2 Dichten?

  1. geom_density (aes_string (x = 'myvar')) VS:

    Kann jemand bitte den Unterschied zwischen diesen vier Anrufe erklären

  2. geom_density (aes_string (x = 'myvar', y = '.. .. Dichte ')) VS
  3. geom_density (aes_string (x =' myvar', y = '.. .. skalierten')) VS
  4. geom_density (aes_string (x = 'myvar', y = '.. zählen ../ summe (.. zählen ..)'))?

Mein Verständnis ist, dass:

  • geom_density allein wird auf 1
  • geom_density mit ..density.. im Grunde macht das gleiche mit einer Dichte, deren Fläche unter der Kurve Summen erzeugen ...?
  • die ..count../sum(..count..) wird die Peakhöhen normalisieren mehr wie ein normalisiertes Histogramm zu sein, sicherzustellen, dass alle Höhen bis 1
  • Summe der ..count.. selbst ohne den Nenner wird nur jedes Fach multiplizieren Anzahl der Elemente in ihm
  • der ..scaled.. Parameter wird es so machen, der Maximalwert der Dichte 1.

ist finde ich ..scaled.. sehr eingängig und haben es nie richtig verwendet, wenn meine Interpretation davon gesehen ist also würde ich das ignorieren möchte. Ich suche hauptsächlich nach einer Klärung der Unterschiede zwischen geom_density und einer Art normalisierten Dichte-Plot, von dem ich annehme, dass er das ...count../... Argument benötigt. Vielen Dank.

(Verwandte: Error with ggplot2 mapping variable to y and using stat="bin")

+3

Nicht verwandt: Sie müssen wirklich aufhören, die Variablen in 'aes()' zu zitieren. Wenn Sie 'aes_string' nicht verwenden, sollten Sie das nicht tun. – joran

+0

@joran: Ich benutze 'aes_string', sorry, ich benutze rpy2, so ist es immer' aes_string' – user248237dfsf

+0

Nur für Leser, die sich wundern. Die Frage wurde bearbeitet, um die Bedenken mit "aes" und "aes_string" zu beheben. Dieser Fehler war für die Frage nicht zentral. – Deleet

Antwort

10

Die Standard-Ästhetik für stat_density ist ..density.., so ein Aufruf an geom_density die stat_density standardmäßig verwendet wird y = ..density.. standardmäßig planen.

können Sie sehen, wie die verschiedenen Spalten, indem man die source code

..scaled.. ist definiert als

densdf$scaled <- densdf$y/max(densdf$y, na.rm = TRUE) 

Fühlen Sie sich frei, es zu ignorieren caculated werden, wenn Sie es wünschen.

am source code for stat_bin

Die Ergebnisse der Suche werden als solche

res <- within(results, { 
    count[is.na(count)] <- 0 
    density <- count/width/sum(abs(count), na.rm=TRUE) 
    ncount <- count/max(abs(count), na.rm=TRUE) 
    ndensity <- density/max(abs(density), na.rm=TRUE) 
    }) 

So berechnet, wenn Sie die Ergebnisse der geom_histogram (unter Verwendung des Standard-stat = 'bin') vergleichen wollen, dann können Sie y = ..density.. gesetzt und es wird berechnen count/sum(count) für Sie (für die Breite der Bins)

Wenn Sie geom_density(aes(y=..scaled..)) mitvergleichen wollten 10, dann würden Sie verwenden geom_histogram(aes(y = ..ndensity..))

Sie könnten sie in der gleichen Größenordnung erhalten, indem ..count.. sowohl in als auch verwenden, aber würden Sie die adjust Parameter in stat_density anpassen müssen die entsprechend detaillierte Annäherung der Kurve zu erhalten.

Verwandte Themen