gpt4 book ai didi

r - 以日期作为解释变量的ggplot多项式拟合

转载 作者:行者123 更新时间:2023-12-02 07:37:39 25 4
gpt4 key购买 nike

我有这样的数据,可以在不同的日子给受试者打分(采用 POSIXct 格式)。

head(test)
Date Subject score
1 2012-08-10 Black6 0
2 2012-08-11 Black6 0
3 2012-08-12 Black6 0
4 2012-08-13 Black6 0
5 2012-08-14 Black6 0
6 2012-08-15 Black6 0

拟合黄土曲线很简单。

ggplot(test,aes(Date,score))+geom_smooth()+geom_point()

enter image description here我想做的是拟合三阶多项式线。如果我输入以下内容,则会出现错误:

ggplot(test,aes(Date,score))+stat_smooth(method = "lm", formula = score ~ poly(Date, 3), size = 1)+geom_point()
Error in eval(expr, envir, enclos) : object 'score' not found

如果我在 stat_smooth() 中将 Date 指定为数字,我会得到同样的错误。有什么办法可以在 ggplot 中做到这一点吗?

这是数据:

test<-structure(list(Date = structure(c(1344556800, 1344643200, 1344729600, 
1344816000, 1344902400, 1344988800, 1345075200, 1345161600, 1345248000,
1345334400, 1345420800, 1345507200, 1345593600, 1345680000, 1345766400,
1345852800, 1345939200, 1346025600, 1346112000, 1346198400, 1346284800,
1346371200, 1346457600, 1346544000, 1346630400, 1346716800, 1346803200,
1346889600, 1346976000, 1347062400, 1347148800, 1347235200, 1347321600,
1347408000, 1347494400, 1347580800, 1347667200, 1347753600, 1347840000,
1347926400, 1348012800, 1348099200, 1348185600, 1348272000, 1348358400,
1348444800, 1348531200, 1348617600, 1348704000, 1348790400, 1348876800,
1348963200, 1349049600, 1349136000, 1349222400, 1349308800, 1349395200
), class = c("POSIXct", "POSIXt"), tzone = "UTC"), Subject = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "Black6", class = "factor"),
score = c(0, 0, 0, 0, 0, 0, 0, 0.25, 0.25, 0.25, 0.25, 0.25,
0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 1, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 1.5, 1.5, 1.25, 1.25, 1.25, 1,
1, 1, 1, 1, 1, 1, 1, 1.5, 1.5, 1.25, 1, 1, 1, 0.5, 0.5, 0.5,
0.25, 0.25)), .Names = c("Date", "Subject", "score"), row.names = c(NA,
57L), class = "data.frame")

最佳答案

stat_smooth 中的公式参数必须根据美学 yx 指定,而不是映射到那些的原始变量美学。

ggplot(test,aes(Date,score)) + 
stat_smooth(method = "lm", formula = y ~ poly(x, 3), size = 1) +
geom_point()

enter image description here

关于r - 以日期作为解释变量的ggplot多项式拟合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14779777/

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