Kategorik bir değişken çiziyorum ve her kategori değeri için sayıları göstermek yerine.
ggplot
Bu kategorideki değerlerin yüzdesini görüntülemek için bir yol arıyorum . Tabii ki, hesaplanan yüzde ile başka bir değişken oluşturmak ve bunu çizmek mümkündür, ancak bunu birkaç düzine kez yapmak zorundayım ve bunu tek bir komutta başarmayı umuyorum.
Gibi bir şey deniyordum
qplot(mydataf) +
stat_bin(aes(n = nrow(mydataf), y = ..count../n)) +
scale_y_continuous(formatter = "percent")
ama hataları aldığım için yanlış kullanmalıyım.
Kurulumu kolayca yeniden oluşturmak için basitleştirilmiş 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 ggplot
bunun yerine kullanacağım qplot
, ancak stat_bin'i kullanmanın doğru yolu hala kaçıyor .
Bu dört yaklaşımı da 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 her ikisi de verir:
Error: ggplot2 doesn't know how to deal with data of class factor
Aynı hata,
ggplot (data=mydataf, aes(levels(mydataf))) +
geom_bar()
bu yüzden açıkça ggplot
tek bir vektörle nasıl etkileşime girdiğine dair bir şey var . Başımı kaşıyorum, bu hata için googling yapmak tek bir sonuç veriyor .