R:在绘制日期时查找刻度线的位置

问题描述 投票:3回答:3

我正在运行一个R脚本,该脚本使用plot绘制一段时间内的数据,并获取某些数据as.Date。然后,我要使用grid添加类似这样的准则:

plot(as.Date(data[["Date"]]), -data[["dbns"]], lwd=1, col = colours[i], type="l",ylim=ylimit, xlim=xlimit, xlab="", ylab =ylabel)

grid(NULL,NULL,lwd=1)

下面是如何显示此结果的示例(实际上是在将此图循环3次以添加每行之后的示例)

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9BSWlQYy5qcGcifQ==” alt =“带有日期的打印语句的输出>

我遇到的问题是,grid添加的指南与plot添加的默认刻度线不一致。默认情况下,plot函数每10年添加一次滴答,这就是我想要的。查看axTicks(1)会给我0 5000 10000 15000,它是准则的位置,以1970年1月1日之后的天数为单位。

是否有办法找出已添加的刻度线的位置?更重要的是,是否有一种方法可以设置准则以匹配这些位置?

我意识到在这个例子中,记号是[0, 365.25*10, 365.25*20 etc.],但是解决一般情况的答案会很好。

谢谢

JP

编辑:

这里是一个可复制的示例,以确切说明我的意思。

data <- read.csv("test.csv"), header =TRUE)
data[["Date"]] <- as.Date(data[["Date"]], format = "%d/%m/%Y")

data<-data[order(as.Date(data$Date)),]


plot(as.Date(data[["Date"]]), -data[["dbns"]], type="l", xlim=xlimit)
grid(NULL,NULL,lwd=3)

文件test.csv如下所示(实际数据摘录)

bore    Date    dbns
42230210A   20/01/2009  13.13
42230210A   8/05/2009   13.21
42230210A   18/06/2009  13.19
42230210A   3/08/2009   13.2
42230210A   2/09/2009   13.25
42230210A   1/10/2009   13.3
42230210A   3/12/2009   13.32
42230210A   24/02/2010  13.3
42230210A   18/05/2010  13.3
42230210A   25/04/2012  11.45
42230210A   27/09/1966  11.18
42230210A   28/10/1969  11.14
42230210A   6/01/1970   11.03
42230210A   5/06/1973   10.68
42230210A   28/08/1973  10.63
42230210A   2/10/1973   10.73
42230210A   4/12/1973   10.7
42230210A   20/02/1980  11.39
42230210A   29/04/1980  11.45
42230210A   27/08/1980  11.45
42230210A   22/06/1988  11.14
42230210A   27/02/1996  11.78
42230210A   6/08/1996   11.68
42230210A   8/02/2000   11.64
42230210A   8/06/2000   11.71
42230210A   7/09/2000   11.75
42230210A   15/07/2008  13.01

其输出如下。准则偏离了刻度线?

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9ucGc2bi5qcGcifQ==” alt =“在此处输入图像描述”>

我正在运行一个R脚本,该脚本使用plot和一些数据作为日期来绘制随时间变化的数据。然后,我使用网格添加诸如以下的准则:plot(as.Date(data [[“ Date”]]]),-data [[“ dbns”]],lwd = 1,...

r datetime plot
3个回答
3
投票
因此检查?grid表示正在发生的事情是,它基于“默认”刻度线位置放置了网格线,但是由于绘制了日期对象,R并未使用“默认”(在将日期视为数字变量的感觉)以放置刻度线。

3
投票
有一个函数Axis.Date,可为Date对象的轴创建适当的漂亮轴刻度位置。这不会更改par('xaxp')用来查找刻度线位置的grid

0
投票
您的问题的答案如下:
© www.soinside.com 2019 - 2024. All rights reserved.