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

  • 2ndfloor91

    2ndfloor91

    17 Kasım 2007
  • Sergio Lafuente Rubio

    Sergio Lafue

    11 Aralık 2008
  • wafflepwn

    wafflepwn

    14 AĞUSTOS 2008