【问题标题】:How to add curve with mean values per category to plot如何添加具有每个类别平均值的曲线以进行绘图
【发布时间】:2017-09-07 13:01:08
【问题描述】:

我有两个变量:Std.gesamt(总工作时间)和alter(年龄,一个包含 11 个年龄类别的因素)。

我已经绘制了每个年龄类别的工作时间分布,并想添加一条曲线来显示每个年龄类别的平均值。

我试过这个,但它在我的最后一个年龄类别中添加了一条垂直线:

plot(as.factor(B$alter), B$Std.gesamt, main ="Gesamtstunden in B (Apr16 - Apr17)")
abline(v=mean(B$Std.gesamt),col="blue")

【问题讨论】:

    标签: r


    【解决方案1】:

    您可以使用 ggplot2 包绘制此图(geom_smooth 添加“平滑条件均值”)

    library(ggplot2)
    ggplot(B, aes(factor(alter), Std.gesamt)) + 
        geom_boxplot() + 
        geom_smooth(aes(group = 1)) +
        ggtitle("Gesamtstunden in B (Apr16 - Apr17)")
    

    【讨论】:

    • 非常感谢,它有效!元素group = 1 代表什么?
    • B$alter 是数字,但您将其转换为因子(使用factor()),因为您想绘制箱线图。这会将您的数字 x 轴转换为分类。 group = 1 使用蛮力将数值平滑绘制到分类轴上。
    • @Hanna 如果我的回答有助于解决您的问题,您可以接受。
    • 一个扩展:我想为不同的部门绘制这些图(B 是其中之一)。如何将这些不同的图合并到一个图形中?
    • @Hanna 不查看您的数据就无法判断,但我想您必须合并您的 data.frames 并使用来自ggplot2facet_grid
    猜你喜欢
    • 2018-12-28
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2014-08-20
    • 2022-01-22
    • 2020-11-22
    • 2021-01-30
    相关资源
    最近更新 更多