如何找到百分比频率gg图

时间:2014-09-28 16:22:42

标签: r ggplot2 histogram

这里有几个问题,询问如何绘制百分比频率。我尝试过实施这些建议,但仍然遇到了麻烦。

我有以下矢量:

var <- c(2,2,1,0,1,1,1,1,1,3,2,3,3,5,1,4,4,0,3,4,1,0,3,3,0,0,
     1,3,2,6,2,2,2,1,0,2,3,2,0,0,0,0,3,2,2,4,3,2,2,0,4,1,0,1,3,1,4,3,1,2,
     6,7,6,1,2,2,4,5,3,0,6,5,2,0,7,1,7,3,1,4,1,1,2,1,1,2,1,1,4,2,0,3,3,2,2,2,5,3,2,5,2,5)

我使用以下代码绘制了直方图:

df <- data.table(x = var)

df <- df[, .N, by=x]

df$x <- factor(df$x, levels=c(0:25))

p <- ggplot(df, aes(x=x, y= N)) +
     geom_bar(
     stat="identity", width=1.0, 
     colour = "darkgreen",
     fill = 'paleturquoise4'
    )

p <- p + labs(scale_x_discrete(drop=FALSE) )

p = p + coord_cartesian(ylim=c(0, 50)) + 
  scale_y_continuous(breaks=seq(0, 50, 2))

print(p)

我尝试使用以下内容,但它不起作用。

p <- ggplot(df, aes(x=x, y= N)) +
     geom_bar(
     aes(y = (..count..)/sum(..count..)),
     stat="identity", width=1.0, 
     colour = "darkgreen",
     fill = 'paleturquoise4'
  )

1 个答案:

答案 0 :(得分:2)

您可以做的一件事是您可以在绘制图形之前进行计算。但是,如果我按照你的方法,你会想要这样的东西。

ggplot(df, aes(x=x)) +
    geom_bar(aes(y = N/sum(N)), stat="identity", width=1.0, 
    colour = "dark green", fill = 'paleturquoise4') +
    ylab("y")

enter image description here