Tôi đang vẽ một biến phân loại và thay vì hiển thị số lượng cho từng giá trị danh mục.
Tôi đang tìm cách ggplot
để hiển thị phần trăm giá trị trong danh mục đó. Tất nhiên, có thể tạo một biến khác với tỷ lệ phần trăm và âm mưu được tính toán, nhưng tôi phải thực hiện vài chục lần và tôi hy vọng sẽ đạt được điều đó trong một lệnh.
Tôi đã thử nghiệm một cái gì đó như
qplot(mydataf) +
stat_bin(aes(n = nrow(mydataf), y = ..count../n)) +
scale_y_continuous(formatter = "percent")
nhưng tôi phải sử dụng nó không đúng, vì tôi gặp lỗi.
Để dễ dàng tái tạo thiết lập, đây là một ví dụ đơn giản:
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.
Trong trường hợp thực tế, có lẽ tôi sẽ sử dụng ggplot
thay vì qplot
, nhưng cách sử dụng stat_bin đúng cách vẫn khiến tôi lảng tránh.
Tôi cũng đã thử bốn cách tiếp cận sau:
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();
nhưng cả 4 đều cho:
Error: ggplot2 doesn't know how to deal with data of class factor
Lỗi tương tự xuất hiện cho trường hợp đơn giản là
ggplot (data=mydataf, aes(levels(mydataf))) +
geom_bar()
Vì vậy, rõ ràng một cái gì đó về cách ggplot
tương tác với một vectơ duy nhất. Tôi đang gãi đầu, googling cho lỗi đó cho một kết quả duy nhất .