gpt4 book ai didi

r - 在 ggplot2 中绘制每个级别的平均值

转载 作者:行者123 更新时间:2023-12-02 06:14:24 42 4
gpt4 key购买 nike

我正在使用 ggplot2 并尝试生成一个显示以下数据的图。

df=data.frame(score=c(4,2,3,5,7,6,5,6,4,2,3,5,4,8),
age=c(18,18,23,50,19,39,19,23,22,22,40,35,22,16))
str(df)
df

我不想绘制变量的频率图(参见下面的代码),而是想生成每个 x 值的平均值图。所以我想绘制每个年龄段的平均分数。在 x 轴上为 18 岁时,y 轴上的分数可能为 3。 23 岁时,我们的平均分数可能为 4.5,依此类推(编辑:平均值已更正)。理想情况下,这可以用条形图表示。

ggplot(df, aes(x=factor(age), y=factor(score))) + geom_bar()
Error: stat_count() must not be used with a y aesthetic.

只是不确定如何在 R 中使用 ggplot2 执行此操作,并且似乎无法在此类图上找到任何内容。从统计上看,我不知道我想要绘制的情节是否正确,但那是不同的商店。

谢谢!

最佳答案

您可以在ggplot中使用汇总函数。以下是实现相同结果的两种方法:

# Option 1
ggplot(df, aes(x = factor(age), y = score)) +
geom_bar(stat = "summary", fun = "mean")

# Option 2
ggplot(df, aes(x = factor(age), y = score)) +
stat_summary(fun = "mean", geom = "bar")

enter image description here

旧版本的ggplot使用fun.y而不是fun:

ggplot(df, aes(x = factor(age), y = score)) + 
stat_summary(fun.y = "mean", geom = "bar")

关于r - 在 ggplot2 中绘制每个级别的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11857935/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com