r - 我正在尝试使用线性回归添加平滑的趋势线,帮助我获得时间序列数据
问题描述
ggplot()+
geom_line(data=combined,aes(x=reorder(dates,value),y=value,color=variable,group=variable))+
scale_y_continuous(labels=function(x) format(x,scientific=FALSE))+
theme_gray()+
theme(axis.text.x = element_text(angle=90),
plot.title=element_text(hjust=0.5),plot.subtitle =
element_text(hjust = 0.5))+
annotate(geom = 'text',x='03.5.20',y=150000,label=
'WHO declares Covid-19 a Pandemic')+
annotate(geom = 'point',x='03.11.20',y=125865,size=6,shape=21,fill='blue')+
labs(title='Cases in China vs World ',x='Daily trend from January to March',y='Case Numbers ',
subtitle = 'Data From Jan 22,2020 - Mar 23,2020')
这是我的常规表格,现在我正在尝试使用线性回归添加平滑的趋势线。我尝试使用stat_smooth(method='lm',formula=?)
,但我正在使用的示例使用 yx。
我的问题是在我的 x 轴上,我有日期,我不知道从这里去哪里。
这是我正在使用的数据
dates variable value
1 01.22.20 World 555
2 01.23.20 World 653
3 01.24.20 World 941
4 01.25.20 World 1434
5 01.26.20 World 2118
6 01.27.20 World 2927
7 01.28.20 World 5578
8 01.29.20 World 6166
9 01.30.20 World 8234
10 01.31.20 World 9927
63 01.22.20 China 548
64 01.23.20 China 643
65 01.24.20 China 920
66 01.25.20 China 1406
67 01.26.20 China 2075
68 01.27.20 China 2877
69 01.28.20 China 5509
70 01.29.20 China 6087
71 01.30.20 China 8141
72 01.31.20 China 9802
任何有关如何解决此问题的提示将不胜感激。
解决方案
您可以使用geom_smooth
,如果您不想在平滑中使用颜色,您可以将美学设置为geom_line
数据
df <- structure(list(dates = structure(c(18283, 18284, 18285, 18286,
18287, 18288, 18289, 18290, 18291, 18292, 18283, 18284, 18285,
18286, 18287, 18288, 18289, 18290, 18291, 18292), class = "Date"),
variable = c("World", "World", "World", "World", "World",
"World", "World", "World", "World", "World", "China", "China",
"China", "China", "China", "China", "China", "China", "China",
"China"), value = c(555L, 653L, 941L, 1434L, 2118L, 2927L,
5578L, 6166L, 8234L, 9927L, 548L, 643L, 920L, 1406L, 2075L,
2877L, 5509L, 6087L, 8141L, 9802L)), class = "data.frame", row.names = c(NA,
-20L))
代码
df %>%
ggplot(aes(x=reorder(dates,value),y=value,color=variable,group=variable))+
geom_line()+
geom_smooth(method = "lm", se = FALSE)
一般顺利
df %>%
ggplot(aes(x=reorder(dates,value),y=value))+
geom_line(aes(color=variable,group=variable))+
geom_smooth(aes(group = 1),method = "lm", se = FALSE)
推荐阅读
- python - 将多行 bash 脚本转换为单行
- html - 如果我将包装器设置为向左浮动,则内部元素的绝对定位消失,宽度和高度为 0
- python - 使用 Django 在 html 中显示一个 csv pandas 文件
- swift - 当传入视图的 ObservedObject 更新时,SwiftUI 不会更新?
- python - Python - Tkinter 检查此标签是否为空
- python - 绘制和解释 TensorFlow 结果
- reactjs - 如何检查我的反应钩子条件
- html - Sapper 在彼此下方加载页面
- javascript - 如何从赛普拉斯清除 Codemirror 编辑器字段
- vue.js - Vue2-Google-Maps 使用 beforeEnter() Route Guard 访问 gmapApi