我有一个数据集,其中包含一定年龄(0-105 +)的人数,记录在1846年至2014年期间,我正在按年计算总人口的散点图;有一个男性数据集和一个女性数据集。在那之后,我将添加一个趋势线,但我在弄清楚如何解决问题。
这是我到目前为止所得到的:
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
答案 0 :(得分:5)
我下载了您的数据文件并将其发布到可访问的位置。
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")
此趋势线周围存在置信区间,但它很窄,很难看到。
更新:我在第二个图中意外使用了均值而不是总和,但当然应该很容易改变它。