ts.plot()绘图后,坐标轴修改失败,使用par函数进行修改

使用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种

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

初于青丝mc终于白发

老爷们,觉得好的给个打赏呗!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值