使用ts.plot绘制时间序列图,总是会出现莫名奇妙的问题。。。。
par函数参数的详细讲解:
>>>点击这儿<<<
-
bty = ‘参数’ ,控制边框,参数:
o, l, u, c, ], n
>>>bty边框设置<<< -
tcl = ‘参数’ 0.5刻度线朝内,长度0.5;-0.5刻度线朝外,长度0.5
以下为自己绘图的代码
library(stats)
library(tsbox)
library(scales) #scale_x_datetime
library(ggplot2)
data_read <- read.csv("C:/Users/zang/Desktop/Time-series/四套日值数据.csv",header= T)
#data_read <- read.csv("C:/Users/zang/Desktop/Time-series/汾渭平原比较.csv",header= T)
#转换为时间序列 frequency = 12,start = (2013,1)表示2013年1月
convert_time1 <- ts(data_read$CHAP,frequency = 12,start = c(2013,1),end = c(2020,12)) #start = c(2013,1)序列开始时间是2013年1月,如果是年度数据,使用ts(x,start = 2013)就可
convert_time2 <- ts(data_read$TAP,frequency = 12,start = c(2013,1),end = c(2020,12))
convert_time3 <- ts(data_read$CAQRA,frequency = 12,start = c(2013,1),end = c(2018,12))
convert_time4 <- ts(data_read$RF,frequency = 12,start = c(2013,1),end = c(2017,12))
#convert_time5 <- ts(data_read$China,frequency = 12,start = c(2013,1),end = c(2020,12))
#convert_time6 <- ts(data_read$WHO,frequency = 12,start = c(2013,1),end = c(2020,12))
#转换为时间序列 frequency = 4,start = (2013,1)表示2013年1月
#convert_time1 <- ts(data_read$CHAP,frequency = 4,start = c(2013,1),end = c(2020,12)) #start = c(2013,1)序列开始时间是2013年1月,如果是年度数据,使用ts(x,start = 2013)就可
#convert_time2 <- ts(data_read$TAP,frequency = 4,start = c(2013,1),end = c(2020,12))
#convert_time3 <- ts(data_read$CAQRA,frequency = 4,start = c(2013,1),end = c(2018,12))
#convert_time4 <- ts(data_read$RF,frequency = 4,start = c(2013,1),end = c(2017,12))
#convert_time5 <- ts(data_read$China,frequency = 4,start = c(2013,1),end = c(2020,12))
#convert_time6 <- ts(data_read$WHO,frequency = 4,start = c(2013,1),end = c(2020,12))
#转换为时间序列 frequency = 7,start = (2013,1)表示2013年1月
#convert_time1 <- ts(data_read$CHAP,frequency = 7,start = c(2013,1),end = c(2020,12)) #start = c(2013,1)序列开始时间是2013年1月,如果是年度数据,使用ts(x,start = 2013)就可
#convert_time2 <- ts(data_read$TAP,frequency = 7,start = c(2013,1),end = c(2020,12))
#convert_time3 <- ts(data_read$CAQRA,frequency = 7,start = c(2013,1),end = c(2018,12))
#convert_time4 <- ts(data_read$RF,frequency = 7,start = c(2013,1),end = c(2017,12))
#convert_time5 <- ts(data_read$China,frequency = 7,start = c(2013,1),end = c(2020,12))
#convert_time6 <- ts(data_read$WHO,frequency = 7,start = c(2013,1),end = c(2020,12))
#转换为时间序列 frequency = 365,start = (2013,1,1)表示2013年1月1号
#convert_time1 <- ts(data_read$CHAP,frequency = 365,start = c(2013,1,1),end = c(2020,12,31)) #start = c(2013,1)序列开始时间是2013年1月,如果是年度数据,使用ts(x,start = 2013)就可
#convert_time2 <- ts(data_read$TAP,frequency = 365,start = c(2013,1,1),end = c(2020,12,31))
#convert_time3 <- ts(data_read$CAQRA,frequency = 365,start = c(2013,1,1),end = c(2018,12,31))
#convert_time4 <- ts(data_read$RF,frequency = 365,start = c(2013,1,1),end = c(2017,12,31))
#convert_time5 <- ts(data_read$China,frequency = 365,start = c(2013,1,1),end = c(2020,12,31))
#convert_time6 <- ts(data_read$WHO,frequency = 365,start = c(2013,1,1),end = c(2020,12,31))
#先分别画图,设置图
#plot.ts(convert_time1,main = 'CHAP',xlab = "年份",ylab = 'PM2.5浓度',type = 'o' ,pch = 1)
#plot.ts(convert_time1,main = 'TAP',xlab = "年份",ylab = 'PM2.5浓度',type = 'o' ,pch = 2)
#plot.ts(convert_time1,main = 'Reanalysis',xlab = "年份",ylab = 'PM2.5浓度',type = 'o' ,pch = 3)
#plot.ts(convert_time1,main = 'RF',xlab = "年份",ylab = 'PM2.5浓度',type = 'o' ,pch = 4,xaxt = 'n')
#使用这个绘制多元图,把上面四个图画到一起
#ts.plot(convert_time1,convert_time2,convert_time3,convert_time4,gpars=list(col=c("red","black","blue",'green')))
#par设置图形防越界,
opar=par(no.readonly=TRUE) #保持系统当前的环境设置
# 生成图形参数列表
par(cex.lab = 1.3 #控制坐标轴文本的缩放比例
,tcl = 0.5 #控制刻度线长与方向,正数刻度线向里面,负数刻度线向外,数值越大,线越长
,bty = 'l' #控制边框
,mar=c(4.5,5.5, 1.5, 1.0)) # 第一个数字控制下框,小扩,大缩;第二个控制左边框,小扩,大缩;第三个越大上边界,小扩,大缩;第四个控制右边框,小扩,大缩
# par设置:图形距边距离(英寸)
#绘图
ts.plot(convert_time1,convert_time2,convert_time3,convert_time4
#,main = "时间序列图"
,gpars=list(col=c("gold","red","green",'purple')) #控制颜色 xaxt ='n' 删除x轴原有标签
#,sub = '多源暴露数据' #sub副标题
,xlab = "日期" #x轴标题
,ylab = expression(paste(PM[2.5]*'浓度'(μg/m^3))) #y轴标题 ^商标 [] 下标
,type = 'o' #type ='xxx',控制绘图的方式; 'b'点和线全部进行绘制 ;'o'同时绘制点和线,且线穿过点;'p'绘点(默认值);'i'绘制线;"c":仅绘制参数"b"所示的线;"h":绘制出点到横坐标轴的垂直线;"n":作空图。
#,pch = 2 #修改点的款式,范围是1-25
#,lty = 1 #修改线条的款式,范围是1-6
#,cex = 0.5 #修改点图中点的大小
,lwd = 1.5 #lwd : 修改线图中线的粗细
#,ann = F #ann = F 取消主标题和副标题以及x,y 的lab值。但是它不能取消title()方法添加上去的字段
#,xlim = c(0,400) #xlim: 设置x轴取值范围
,ylim = c(0,200) #ylim: 设置y轴取值范围
)
#添加参考线
abline(h = 75,lty = 2,col = "blue") #v : 垂直参考线的位点 h : 水平参考线的位点 lty: 参考线的样式 col:参考线的颜色
abline(h = 15,lty = 2,col = 'red')
par(opar) # 关闭par 同上面opar 和par一同使用
#####################修改x轴的时间刻度
#x_label <- seq(from = as.Date("2013-01-01"),to = as.Date('2020-12-31'),by =7) #生成新的标签
#axis(side = 1,x_label,format(x_label,'%Y-%m-%d')) #axis用来修改坐标轴,1表示x轴,2表示y轴,format设置日期格式,las旋转标签
#图例
legend(x = 'topright', #图例位置
legend = c('CHAP',"TAP","CAQRA","RF"),
lty = 1, #修改图例线条的样式
#title = '暴露数据源', #图例标题
#title.adj = 0, #图例标题的相对位置,0.5为默认,在中间。0最左,1为最右
col = c('gold', 'red','green','purple'),
bty = 'n' #图例不加边框,则设置bty=“n”,“o”为加边框。
#,xjust = 0.5,yjust=1 #xjust和yjust是图例实际位置相对输入的xy坐标点的位置 没搞明白v_v
#,adj = 0.1 #adj越接近于0,图标与文字的相对距离越远。
#,x.intersp=0.5 #越接近于0,图标与文字的绝对距离越近
,y.intersp=1.5 #y.intersp 对应垂直距离 越接近0 距离越小
,cex = 1 #调整图例的大小
#,pch = c(1,2,3,5) #pch表示点的类型 可以这样来修改多个点的样式,同样lty=c(1,2,3)
,pch = 1 #点的类型
#,merge = T #merge如果为True,表示当有点和线同时出现是,点和线在图形上合并展示,即点画在线上。
,ncol = 1 #ncol是图例的列数,可以理解成每行写几个,默认为1。
#,horiz = T #horiz控制图例横排还是竖排
)
#colours() #获取颜色的名称,总共有657种