2013-03-27 32 views
15

Ben ggplot içinde geom_density aşağıdaki varyantlar anlamı hakkında karıştı:Farklı ggplot2 yoğunlukları nasıl yorumlanır?

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

    birisi bu dört aramaları arasındaki farkı açıklayabilir misiniz

  2. geom_density (aes_string (x = 'myvar', y = '.. yoğunluğu .. ')) VS
  3. geom_density (aes_string (x =' myvar', y = '.. ölçekli ..')) VS
  4. geom_density (aes_string (x = 'myvar', y = '.. sayma ../sum (.. sayısı ..)'))?

    • geom_density yalnız olan alan eğrisi toplamlar altında 1
    • geom_density için ..density.. ile temelde aynı yapan bir yoğunluğa üretecek ...:

Benim anlayış bu?

  • ..count../sum(..count..) tüm yükseklikleri
  • İçinde öğelerin # ile sadece her bin çarpacaktır payda olmadan tek başına 1
  • ..count.. toplamı sağlamak, daha bir normalize histogram gibi olmak zirve yükseklikleri normalleştirmek olacak ..scaled.. parametre ben de çok gariptir ..scaled.. bulmak ve bu özellikten benim yorumlanması doğru olup olmadığını bu yüzden bunu dikkate almak istemediğiniz kullanılan görmemiştim o kadar yoğunluğunun maksimum değeri 1.
  • olduğunu yapacaktır. Ben esas olarak geom_density arasındaki farklılıklar ve ...count../... argüman gerektirir varsayarak bir normalize yoğunluk arsa, bir açıklama için arıyorum. Teşekkürler.

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

    +3

    İlişkisiz: gerçekten aes() 'içindeki değişkenleri alıntılamayı bırakmanız gerekir. “Aes_string” kullanmadığınız sürece bunu yapmamalısınız. – joran

    +0

    @joran: 'aes_string' kullanıyorum, üzgünüm, rpy2 kullanıyorum bu yüzden her zaman aes_string' – user248237dfsf

    +0

    Sadece merak edenler için. Bu soru, kaygıları aes' aes_string ile düzeltmek için düzenlenmiştir. Bu hata, sorunun merkezi değildi. – Deleet

    cevap

    10

    stat_density için varsayılan estetik ..density.., yani varsayılan olarak stat_density kullanan geom_density bir çağrı, varsayılan olarak y = ..density.. arsa olacaktır.

    çeşitli sütunlar

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

    İsterseniz bunu görmezden çekinmeyin olarak tanımlanır source code

    ..scaled.. bakarak caculated nasıl görebiliriz.source code for stat_bin

    sonuç baktığımızda

    Yani (varsayılan stat = 'bin' kullanarak) geom_histogram sonuçlarını karşılaştırmak istiyorsanız, o zaman y = ..density.. ayarlayabilirsiniz ve irade böyle

    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) 
        }) 
    

    olarak hesaplanır Eğerile geom_density(aes(y=..scaled..)) karşılaştırmak istiyorsa sizin için count/sum(count) hesaplamak

    (kutuları genişliği hesaba) 10, o zaman ancak eğrinin uygun detaylı yakın sonucu elde etmek stat_density yılında adjust parametreyi ayarlamak gerekir, geom_histogram(aes(y = ..ndensity..))

    Siz de hem ..count.. kullanarak aynı ölçekte bunları alabilir kullanmak.