r - 使用R将趋势线添加到散点图

标签 r

我有一个数据集,记录了1846-2014年期间某个年龄段(0-105岁以上)的人数,并按年绘制了总人数的散点图;有一个男性数据集和一个女性数据集。在那之后,我将添加一条趋势线,但是在确定如何进行时遇到了问题。

到目前为止,这是我得到的:

B <- as.matrix(read.table("clipboard"))
head(B)
age <- 0:105
y <- 1846:2014
plot(c(1846:2014), c(colSums(B)), col=3, xlab="Year", ylab="Summed age", main="Summed people")

这给了我曲线图,但是我不确定如何添加趋势线。请帮忙。
情节看起来像这样:https://www.dropbox.com/s/5dono5bjrmqylcp/Plot.png?dl=0

此处可用数据:
https://www.ssb.no/statistikkbanken/SelectVarVal/Define.asp?subjectcode=01&ProductId=01&MainTable=FolkemEttAarig&SubTable=1&PLanguage=1&nvl=True&Qid=0&gruppe1=Hele&gruppe2=Hele&gruppe3=Hele&VS1=AlleAldre00B&VS2=Kjonn3&VS3=&mt=0&KortNavnWeb=folkemengde&CMSSubjectArea=befolkning&StatVariant=&checked=true

最佳答案

我下载了您的数据文件,并将其发布在可访问的位置。

urlsrc <- "http://www.math.mcmaster.ca/bolker/misc"
urlfn <- "201512516853914205393FolkemEttAarig.tsv"
d <- read.delim(url(paste(urlsrc,urlfn,sep="/")),header=TRUE,
                check.names=FALSE)
dm <- d[,3:171]
y <- as.numeric(names(dm))

现在作图:
plot(y, colSums(dm),
           col=3, xlab="Year", ylab="Summed age", main="Summed people")
abline(lm(colSums(dm) ~ y))

您也可以这样:
library("tidyr")
library("ggplot2"); theme_set(theme_bw())
library("dplyr")
d2 <- gather(dm,year,pop,convert=TRUE)
d3 <- d2 %>% group_by(year) %>% summarise(pop=mean(pop))
ggplot(d3,aes(year,pop)) + geom_point() + 
    geom_smooth(method="lm")

这个趋势线周围有一个置信区间,但是它是如此狭窄,以至于很难看到。

更新:我不小心在第二个图中使用了平均值而不是总和,但是当然应该很容易更改它。

关于r - 使用R将趋势线添加到散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28136969/

相关文章:

r - 如何在没有循环的情况下通过数据帧中该级别中另一个因子的子集来操作因子级别内的数据

r - Y-break 与 R 的比例变化

r - Hmisc : How to group column variables with latex()?

r - ggplot 颜色图例形状混合字母数字和形状

r - 使用 R 中的人口比率和最小/最大标准将值分配给区域

r - 如何构造多类变量的混淆矩阵

r - 在不关闭控制台的情况下停止 R 进程?

r - 如何查找ANY列是否具有我要查找的特定值?

r - 使用一个共享图例排列 ggsurv 图

从 ggplot2 中的图例中删除标签