如何从.csv文件中绘制x轴值?

时间:2013-03-18 19:15:29

标签: r

我有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等...

1 个答案:

答案 0 :(得分:0)

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

这里有一个例子:

enter image description here

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

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')