【问题标题】:ggplot2 continuous bar plot with multiple factors具有多个因素的ggplot2连续条形图
【发布时间】:2014-03-15 00:58:37
【问题描述】:

我将使用 ggplot2 包标配的菱形数据集来说明我在寻找什么。

我想构建一个像这样的图表:

library(ggplot2)
ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar(position="dodge")

但是,我想返回连续变量的平均值,而不是计数。我想返回切割和颜色并获得平均克拉。如果我输入这段代码:

ggplot(diamonds, aes(carat, fill=cut)) + geom_bar(position="dodge")

我的输出是克拉数与切工的计数。

有人知道怎么做吗?

【问题讨论】:

    标签: r ggplot2 bar-chart continuous


    【解决方案1】:

    你可以得到一个新的数据框,其中mean(carat)cutcolor分组,然后绘制:

    library(plyr)
    data <- ddply(diamonds, .(cut, color), summarise, mean_carat = mean(carat))
    ggplot(data, aes(color, mean_carat,fill=cut))+geom_bar(stat="identity", position="dodge")
    

    如果您想要更快的解决方案,您可以使用dplyrdata.table

    dplyr:

    library(dplyr)
    data <- group_by(diamonds, cut, color)%.%summarise(mean_carat=mean(carat)) 
    

    data.table:

    library(data.table)
    data <- data.table(diamonds)[,list(mean_carat=mean(carat)), by=c('cut', 'color')]
    

    两者的绘图代码相同。

    【讨论】:

    • 太棒了!我已经使用 data.table 对其余文档进行了编码,所以我想知道是否也有针对此问题的 data.table 解决方案。我也在使用大量的数据集,所以速度加成很明显。
    • 是的,您可以同时使用dplyrdata.table,它们比plyr 更快,我将发布解决方案!
    • 我非常爱你,我可以吻你。一个小时内,你解决了我上周苦苦挣扎的问题和 3 个不同的包!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    相关资源
    最近更新 更多