wbingyang 2020-05-01
目的:根据水体面积数据分别绘制永久水体、季节性水体、总水体的折线图,并添加Theil-sen趋势线与regime shift折线
过程:
1、引用相关包,mblm包包含Theil-sen函数,可用来生成TS趋势线
library("mblm")2、导入数据
year_theilsen<-read.csv("E:/数据/year_theilsen.csv")
x<-year_theilsen$year
y1 <- year_theilsen$p
y2 <- year_theilsen$s
y3 <- year_theilsen$m
y4 <- year_theilsen$p1
y5 <- year_theilsen$s1
y6 <- year_theilsen$m13、利用mblm生成趋势线
fit1<- mblm(y1~x) fit2<- mblm(y2~x) fit3<- mblm(y3~x)
4、绘图
par(mai=c(0,1,0,0.5))#留出下,左,上,右的边界空间,起初未添加此行代码时,ylab的上标显示不全
plot(x,y1,type="b",lwd=2,pch=15,xlab = "Year",ylab = expression("w"*"a"*"t"*"e"*"r"~"a"*"r"*"e"*"a"*"("*"k"*m^2*")"))#绘制原始数据折线图
abline(fit,lty=2,lwd=1.5)#利用abline函数添加直线
abline(h=2443.94,lwd=3)
legend("top",pch=15,legend = "permanent water body")#添加标签
par(mai=c(0,1,0,0.5))#留出下,左,上,右的边界空间
plot(x,y2,type="b",lwd=2,pch=16,xlab = "Year",ylab = expression("w"*"a"*"t"*"e"*"r"~"a"*"r"*"e"*"a"*"("*"k"*m^2*")"))
abline(fit,lty=2,lwd=1.5)
lines(x,y5,lwd=3)#利用lines添加折线
legend("top",pch=16,legend = "seasonal water body")
par(mai=c(1,1,0,0.5))#留出下,左,上,右的边界空间
plot(x,y3,type="b",lwd=2,pch=17,xlab = "Year",ylab = expression("w"*"a"*"t"*"e"*"r"~"a"*"r"*"e"*"a"*"("*"k"*m^2*")"))
abline(fit,lty=2,lwd=1.5)
lines(x,y6,lwd=3)
legend("top",pch=17,legend = "maximum water body")5、导出图像
