如何在x轴上显示标签?

时间:2013-03-19 21:45:08

标签: r

这是我的.csv文件:

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

这个文件被读入一个名为date1的对象,这是我用来绘制数据的代码:

g_range <- range(0, date1$links)
plot(date1$links, type="o", col="blue", ylim=g_range,
    axes=FALSE, ann=FALSE)
axis(1, xlab=date1$links)
box()
title(main="Additions", col.main="red", font.main=4)
axis(2, las=1, at=50*0:g_range[2])
title(xlab="Date", col.lab=rgb(0,0.5,0))
title(ylab="# Links", col.lab=rgb(0,0.5,0))

以下是生成的图表:

enter image description here

未输出日期值,而是显示数字1 - 5。如何修改代码以便生成.csv文件中包含的日期值?我认为问题在于这一行:axis(1, xlab=date1$links)

1 个答案:

答案 0 :(得分:1)

请改为尝试:

axis(1,at=1:5,labels = date1$dateval)

所以,你会注意到,如果你仔细看?axis,你会发现根本没有xlab参数,但第二和第三个参数是:

  

- 要绘制刻度线的点。非有限   (无限,NaN或NA)值被省略。默认情况下(NULL时)   计算tickmark位置,请参阅下面的“详细信息”。

     

标签 - 这可以是指定是否为的逻辑值   (数字)注释应在刻度线上进行,或者a   要放置的标签的字符或表达载体   tickpoints。 (其他对象由as.graphicsAnnot强制执行。)如果这样   是不合逻辑的,也应该提供相同的长度。如果   胁迫后标签的长度为零,它具有相同的效果   提供TRUE。

但也许你应该做更像这样的事情:

date1$dateval <- as.Date(date1$dateval,format = "%d/%m/%Y")
plot(date1$dateval,date1$links, type="o", col="blue", ylim=g_range, ann=FALSE,axes = FALSE)
axis(1,at=date1$dateval,labels = date1$dateval)

但与使用专门为此目的而设计的套装/功能相比,即使这是处理绘图日期的粗略方式。