r - 在分类变量图表中显示百分比而不是计数

标签 r ggplot2

我正在绘制一个分类变量,而不是显示每个类别值的计数。

我正在寻找一种方法来获取 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与单个向量相互作用。我正在挠头,谷歌搜索该错误给出了一个 result .

最佳答案

自从回答这个问题以来,ggplot 发生了一些有意义的变化。语法。总结以上评论中的讨论:

 require(ggplot2)
 require(scales)

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

这是一个使用 mtcars 的可重现示例:
 ggplot(mtcars, aes(x = factor(hp))) +  
        geom_bar(aes(y = (..count..)/sum(..count..))) + 
        scale_y_continuous(labels = percent) ## version 3.0.0

enter image description here

这个问题目前是谷歌上排名第一的“ggplot 计数与百分比直方图”,所以希望这有助于提炼当前包含在对已接受答案的评论中的所有信息。

备注:hp未设置为因子,ggplot 返回:

enter image description here

关于r - 在分类变量图表中显示百分比而不是计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3695497/

相关文章:

r - Glmnet 与intercept=TRUE 相比,intercept=FALSE 不同,并且对于x 中的截距,percentage.factor=0

R - 如何在空间多边形数据帧对象中显示插槽 "coords"中的数据

r - 高效的jaccard相似度DocumentTermMatrix

r - apply 中的 ifelse 语句返回意外结果

javascript - 在 Plotly R 中添加带有选择框 Angular 的永久阴影矩形

r - ggplot 中的标准化条形高度

r - 使用 ggplot2 自动绘制所有 data.table 列的最佳方法

r - 有条件地删除每列的值,但使用循环将每列保留为新数据框

r - 为多个图表创建标准色标

r - 如何在标签ggplot条形图上放置精确的小数位数