我正在尝试绘制连续两年的温度数据(比如 2010 年 11 月 5 日至 2011 年 3 月 30 日),其中的天数为 x 轴值。例如:
temp<-c(30.1:40.1) # y axis
doy<-c(360:365,1:5) # x axis
请帮帮我。谢谢。
temp<-c(30.1:40.1) # y axis
doy<-c(360:365,1:5) # x axis
doy2 <- c(360:365,c(1:5)+365)
plot(temp ~ doy2, xaxt="n", xlab = "doy")
axis(1,doy,at=doy2)
或者:
解决这个问题的最严格方法是使用 R 中的日期时间对象。然后 R 会将“临时”数据识别为日期,因此在绘制时会给出正确的结果。日期时间对象很复杂,但如果你经常处理它们,它们是值得学习的:
temp<-c(30.1:40.1) # y axis
doy<-c(360:365,1:5) # x axis
doy2 <- c(360:365,c(1:5)+365) #we sill need this to place numbers 1:5 into a new year (i.e. 365 days later)
doy.date <- as.Date("2011-01-01") #Set a base date (choose the year that you will start with
doy.date <- doy.date + doy2 - 1 #add the days of year to the base date and subtract one (the base date was January 1st)
plot(temp ~ doy.date, xlab = "doy") #plot as usual
#see documentation on dates
?date
#or for date with times:
?POSIXct