【问题标题】:ggplot2: line connecting the means of grouped dataggplot2:连接分组数据均值的线
【发布时间】:2011-04-07 00:33:39
【问题描述】:

我正在尝试将我的数据中的一个变量按另一个分组,然后通过这些方法绘制一条线。当两个变量都是数字时,它工作正常。但是,当分组变量是一个因素时,我遇到了问题。我在下面有一个模型。

x <- sample(1:3, 40, replace=T)
y <- rnorm(40)

df1 <- data.frame(x, y)
qplot(x, y, data=df1) + stat_summary(fun.y=mean, colour="red", geom="line")

这看起来很棒。但是,如果 x 变量是一个因素,我不明白这一点。

df2 <- data.frame(x=as.factor(x), y)
qplot(x, y, data=df2) + stat_summary(fun.y=mean, colour="red", geom="line")

我可以做些什么来显示这条线吗?

附言。 geom="point" 有效但不是 geom="line"

qplot(x, y, data=df2) + stat_summary(fun.y=mean, colour="red", geom="point")

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    ggplot2 故意使跨 x 轴因子绘制线条有点棘手,因为您需要确保它是有意义的。如果您的 x 轴是“纽约”、“费城”和“波士顿”,那么画一条连接它们的线不是一个好主意。

    但是,假设您的 x 变量具有有意义的顺序,您必须定义 group 美学来绘制您想要的线条。在这里,group = 1

    qplot(x, y, data=df2) + 
      stat_summary(fun.y=mean, colour="red", geom="line", aes(group = 1))
    

    如果您只是将geom_line() 添加到这样的图中,则必须以类似的方式定义分组变量。

    【讨论】:

    • 这些解决方案不再有效。他们产生错误:“geom_path:每个组只包含一个观察。您需要调整组审美吗?”
    • ggplot(df2, aes(x=x), y=y)) + stat_summary(fun.y="mean", geom="line", aes(group=factor(grouping))) 为我工作
    • @JoFrhwld,如果有另一个变量z 将观察结果分为两组,比如HL,以及如何绘制同一组的平均线情节?
    • 这是一个很棒的功能 [stats_summary]。我想我需要手动计算和绘制平均值。
    猜你喜欢
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 2021-08-28
    相关资源
    最近更新 更多