绘图时限制R中的日期范围

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了绘图时限制R中的日期范围相关的知识,希望对你有一定的参考价值。

我试图绘制我的data.frame的两列(为了方便我们称之为data$Datedata$x)。

当绘制data$x时,我想限制自己来自2014-01-01之后的数据。这样做的正确方法是什么?

答案

您可以先将Date列作为日期与strptime一起使用,然后将您的data.frame分组,以便仅保留2014-01-01之后的日期:

data$Date <- strptime(data$Date, format="%y%y-%m-%d")
plot(data$Date[data$Date > strptime("2014-01-01", format="%y%y-%m-%d")], data$x[data$Date > strptime("2014-01-01", format="%y%y-%m-%d")], las=1, pch=19, xlab="Date post 01/01/2014", ylab="")

 data <- data.frame(Date=c("2013-02-03","2013-12-13","2014-02-02","2014-05-05"), x=1:4, stringsAsFactors=F)

编辑 如果您需要绘制多个“x”,您可以先使用plot然后使用points。你可以用x axis调整axis.POSIXct

data <- data.frame(Date=c("2013-02-03", "2013-12-13", "2014-02-02", "2014-05-05", "2015-04-14"), x1=rep(1, 5), x2=rep(2, 5), stringsAsFactors=F)
data$Date <- strptime(data$Date, format="%y%y-%m-%d")
plot(data$Date[data$Date > strptime("2014-01-01", format="%y%y-%m-%d")], data$x1[data$Date > strptime("2014-01-01", format="%y%y-%m-%d")], las=1, pch=19, col="red", xlab="Date post 01/01/2014", ylab="", xaxt="n", ylim=c(0,3))
points(data$Date[data$Date > strptime("2014-01-01", format="%y%y-%m-%d")], data$x2[data$Date > strptime("2014-01-01", format="%y%y-%m-%d")], pch=19, col="blue")
axis.POSIXct(1, at=seq(strptime("2014-02-01",format="%y%y-%m-%d"),strptime("2015-04-01",format="%y%y-%m-%d"), by = "month"), format = "%m/%y")

另一答案

如果您的数据框将日期存储为标准日期类型,您还可以使用日期类型在图中设置xlim选项,例如:

xlim<-c(as.Date("20140101","%Y%m%d"),as.Date("20180801","%Y%m%d"))
plot(data$Date,data$x,xlim=xlim)

以上是关于绘图时限制R中的日期范围的主要内容,如果未能解决你的问题,请参考以下文章

如何快速(优雅地)在 R 中的时间序列对象 `ts` 和日期框架之间进行迭代以进行 ggplot2 绘图?

如何限制 Bootstrap Datepicker 中的可选日期范围?

Shiny R仅绘制滑块范围的极值

具有日期时间和散点图交互的绘图破折号范围滑块

在 R 闪亮的日期范围内传递 SQl 查询

如何从片段中调用 getSupportFragmentManager()?