我正在绘制一个类别变量,而不是显示每个类别值的计数。
我正在寻找一种方法来ggplot
显示该类别中的值的百分比。当然,可以使用计算出的百分比创建另一个变量并绘制该变量,但是我必须执行数十次,我希望可以通过一个命令来实现。
我正在尝试类似的东西
qplot(mydataf) +
stat_bin(aes(n = nrow(mydataf), y = ..count../n)) +
scale_y_continuous(formatter = "percent")
但由于出现错误,我必须使用不正确。
为了轻松复制设置,这是一个简化的示例:
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.
在实际情况下,我可能会使用ggplot
代替qplot
,但是使用stat_bin的正确方法仍然着我。
我还尝试了以下四种方法:
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();
但所有4个都给出:
Error: ggplot2 doesn't know how to deal with data of class factor
对于以下简单情况,也会出现相同的错误
ggplot (data=mydataf, aes(levels(mydataf))) +
geom_bar()
因此,这显然ggplot
与单个向量如何相互作用有关。我挠头,搜寻该错误只会得到一个结果。