SORU
12 EYLÜL 2010, Pazar


ggplot: gösteren % yerine kategorik değişkenlerin grafikleri sayar

Kategorik bir değişken komplo ve her kategori için sayıları göstermek yerine değer, ben Bir şekilde bu kategorideki değerler yüzdesini görüntülemek için ggplot almak için arıyorum. Tabii ki, hesaplanan yüzde ile başka bir değişken oluştur ve bu bir komplo mümkündür, ama bu kez birkaç düzine yapmak zorundayım ve bir komut elde etmek için umut.

Gibi bir şey deniyordum

qplot (mydataf)   stat_bin(aes(n=nrow(mydataf), y=..count../n))   scale_y_continuous(formatter="percent")

ama hataları var gibi yanlış kullanılması, olmalıyım.

Kolay kurulumu yeniden oluşturmak için, burada basit bir örnek:

mydata <- c ("aa", "bb", null, "bb", "cc", "aa", "aa", "aa", "ee", null, "cc");
mydataf <- factor(mydata);
qplot (mydataf); #this shows the count, I'm looking to see % displayed.

Gerçek durumda muhtemelen qplot yerine ggplot kullanırım, ama stat_bin kullanmak için doğru yolu halen bulamıyorum.

Teşekkür ederim.

GÜNCELLEME:

Ayrıca bu dört yaklaşım denedim:

ggplot(mydataf, aes(y = (..count..)/sum(..count..)))   scale_y_continuous(formatter = 'percent');
ggplot(mydataf, aes(y = (..count..)/sum(..count..)))   scale_y_continuous(formatter = 'percent')   geom_bar();
ggplot(mydataf, aes(x = levels(mydataf), y = (..count..)/sum(..count..)))   scale_y_continuous(formatter = 'percent');
ggplot(mydataf, aes(x = levels(mydataf), y = (..count..)/sum(..count..)))   scale_y_continuous(formatter = 'percent')   geom_bar();

ama 4 ver:

Error: ggplot2 doesn't know how to deal with data of class factor

Aynı hatayı basit bir durumda görünür

ggplot (data=mydataf, aes(levels(mydataf)))   geom_bar()

açıkça ggplot tek bir vektör ile nasıl etkileşim kurduğu hakkında bir şey yani. Kafamı, o hata result bir tek verir için googling kaşıyorum.

CEVAP
24 Ocak 2013, PERŞEMBE


Bu cevap oldu bu yana ggplot sözdizimi için bazı anlamlı değişiklikler olmuştur. Yorum yukarıdaki tartışmayı özetliyor:

 require(ggplot2)
 require(scales)

 p <- ggplot(mydataf, aes(x = foo))    
        geom_bar(aes(y = (..count..)/sum(..count..)))   
        ## version 3.0.9
        # scale_y_continuous(labels = percent_format())
        ## version 3.1.0
        scale_y_continuous(labels=percent)

İşte tekrarlanabilir bir örnek mtcars kullanarak:

 p <- ggplot(mtcars, aes(x = hp))    
        geom_bar(aes(y = (..count..)/sum(..count..)), binwidth = 25)   
        ## scale_y_continuous(labels = percent_format()) #version 3.0.9
        scale_y_continuous(labels = percent) #version 3.1.0

Bu soru şu anda 'ggplot sayısı vs yüzde histogram' umarım bu özü tüm bilgileri şu anda kabul edilmiş cevap üzerinde yorum yer yardımcı olur. Google'da #1 isabet

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bunnyboxx

    bunnyboxx

    17 NİSAN 2008
  • DavideoDesign

    DavideoDesig

    24 NİSAN 2006
  • Sali Kaceli

    Sali Kaceli

    24 ŞUBAT 2009