绘制摘要统计数据

Jul*_*iaz 5 r summarization ggplot2

对于以下数据集,

Genre   Amount
Comedy  10
Drama   30
Comedy  20
Action  20
Comedy  20
Drama   20
Run Code Online (Sandbox Code Playgroud)

我想构建一个ggplot2折线图,其中x轴是Genre,而y轴是所有量的总和(以条件为基础Genre).

我尝试过以下方法:

p = ggplot(test, aes(factor(Genre), Gross)) + geom_point()
p = ggplot(test, aes(factor(Genre), Gross)) + geom_line()
p = ggplot(test, aes(factor(Genre), sum(Gross))) + geom_line()
Run Code Online (Sandbox Code Playgroud)

但无济于事.

jub*_*uba 8

如果您不想在绘图之前计算新的数据框,则可以stat_summary在ggplot2中使用cvan.例如,如果您的数据集如下所示:

R> df <- data.frame(Genre=c("Comedy","Drama","Action","Comedy","Drama"),
R+                  Amount=c(10,30,40,10,20))
R> df
   Genre Amount
1 Comedy     10
2  Drama     30
3 Action     40
4 Comedy     10
5  Drama     20
Run Code Online (Sandbox Code Playgroud)

您可以使用qplot一个stat="summary"参数:

R> qplot(Genre, Amount, data=df, stat="summary", fun.y="sum")
Run Code Online (Sandbox Code Playgroud)

或者添加stat_summary到基本ggplot图形:

R> ggplot(df, aes(x=Genre, y=Amount)) + stat_summary(fun.y="sum", geom="point")
Run Code Online (Sandbox Code Playgroud)

  • 看来你可以在你的'aes`定义中使用`reorder`调用,比如`aes(x = reorder(Genre,Amount,sum),y = Amount))`.但是可能有一种更好,更清洁的方法. (2认同)