1

我有 date1 列,其中包含一个日期行。此行包含格式为 dd/mm/yyyy 的日期

要直接绘制日期值,我正在使用:

axis(1, at=1:5, lab=c("01/01/2013" , "01/02/2013" , "01/03/2013" , 
, "01/04/2013" , , "01/05/2013"))

要从 .csv 文件中读取值,我需要类似的东西?: axis(1, at=1:5, lab=c(date1$date)) 我想我需要删除'at'参数,因为日期数是动态的。

这是整个代码:

g_range <- range(0, date1$links)
plot(date1$links, type="o", col="blue", ylim=g_range, 
   axes=FALSE, ann=FALSE)
axis(1, at=1:5, lab=c("01/01/2013" , "01/02/2013" , "01/03/2013" , 
, "01/04/2013" , , "01/05/2013"))
box()
title(main="Additions", col.main="red", font.main=4)
axis(2, las=1, at=50*0:g_range[2])

这是正在读取的文件的格式:

value , links 
18/03/2013,100 
19/03/2013,200 
20/03/2013,300 
21/03/2013,400 
22/03/2013,500

我目前正在阅读链接列,但想更新代码以读取日期,因为现在日期值是在 r 代码本身中设置的。通过动态,我的意思是 .csv 文件可以包含日期和链接值的变量列表,因此在上面的示例中,有 5 个值/链接对,但可能有 6 个或 7 个或 8 个等...

4

1 回答 1

0

不清楚你想做什么,畏缩你没有给出一个可重复的例子,也不清楚什么是动态的。我认为,您可以使用该函数axis.Date()获取包含日期的对象并生成带有适当标签的轴。

这里有一个例子:

在此处输入图像描述

我创建了一些虚拟情节...

random.dates <- seq(as.Date("01/01/2013",format='%d/%m/%Y'),
                    as.Date("01/05/2013",format='%d/%m/%Y'),length.out=50)
plot(random.dates, 1:50, xaxt="n",main='pretty axes dates',type='o')

然后我将您的字符串向量强制转换为日期向量

at =as.Date(c("01/01/2013" , "01/02/2013" , "01/03/2013"  , 
              "01/04/2013" ,  "01/05/2013"),format='%d/%m/%Y')

注意axis.Date参数格式的调用与用于将字符串强制为日期的格式不同...

axis.Date(1,at=at,format='%d/%m/%Y')

编辑*

何读取 csv 文件:

dat <- read.table(text='value , links 
18/03/2013,100 
19/03/2013,200 
20/03/2013,300 
21/03/2013,400 
22/03/2013,500',header=TRUE,sep=',')


dat$value <- as.Date(dat$value,format='%d/%m/%Y')
于 2013-03-18T19:39:36.173 回答