在R中以日期为X轴绘制图表

4

我将我的日志以电子形式维护,并试图了解我在过去几个月中写日志的一致性。我有以下数据文件,显示我在前30天内记录了多少日志条目(条目计数)和单词数(单词计数)。

Date    Entry Count Word Count
2010-08-25  22  4205
2010-08-26  21  4012
2010-08-27  20  3865
2010-08-28  20  4062
2010-08-29  19  3938
2010-08-30  18  3759
2010-08-31  17  3564
2010-09-01  17  3564
2010-09-02  16  3444
2010-09-03  17  3647
2010-09-04  17  3617
2010-09-05  16  3390
2010-09-06  15  3251
2010-09-07  15  3186
2010-09-08  15  3186
2010-09-09  16  3414
2010-09-10  15  3228
2010-09-11  14  3006
2010-09-12  13  2769
2010-09-13  13  2781
2010-09-14  12  2637
2010-09-15  13  2774
2010-09-16  13  2808
2010-09-17  12  2732
2010-09-18  12  2664
2010-09-19  13  2931
2010-09-20  13  2751
2010-09-21  13  2710
2010-09-22  14  2950
2010-09-23  14  2834
2010-09-24  14  2834
2010-09-25  14  2834
2010-09-26  14  2834
2010-09-27  14  2834
2010-09-28  14  2543
2010-09-29  14  2543
2010-09-30  15  2884
2010-10-01  16  3105
2010-10-02  16  3105
2010-10-03  16  3105
2010-10-04  15  2902
2010-10-05  14  2805
2010-10-06  14  2805
2010-10-07  14  2805
2010-10-08  14  2812
2010-10-09  15  2895
2010-10-10  14  2667
2010-10-11  15  2876
2010-10-12  16  2938
2010-10-13  17  3112
2010-10-14  16  2894
2010-10-15  16  2894
2010-10-16  16  2923
2010-10-17  15  2722
2010-10-18  15  2722
2010-10-19  14  2544
2010-10-20  13  2277
2010-10-21  13  2329
2010-10-22  12  2132
2010-10-23  11  1892
2010-10-24  10  1764
2010-10-25  10  1764
2010-10-26  10  1764
2010-10-27  10  1764
2010-10-28  10  1764
2010-10-29  9   1670
2010-10-30  10  1969
2010-10-31  10  1709
2010-11-01  10  1624
2010-11-02  11  1677
2010-11-03  11  1677
2010-11-04  11  1677
2010-11-05  11  1677
2010-11-06  12  1786
2010-11-07  12  1786
2010-11-08  11  1529
2010-11-09  10  1446
2010-11-10  11  1682
2010-11-11  11  1540
2010-11-12  11  1673
2010-11-13  11  1765
2010-11-14  12  1924
2010-11-15  13  2276
2010-11-16  12  2110
2010-11-17  13  2524
2010-11-18  14  2615
2010-11-19  14  2615
2010-11-20  15  2706
2010-11-21  14  2549
2010-11-22  15  2647
2010-11-23  16  2874
2010-11-24  16  2874
2010-11-25  16  2874
2010-11-26  17  3249
2010-11-27  18  3421
2010-11-28  18  3421
2010-11-29  19  3647

我想用R来绘制这些数据,以获取我的日志写作一致性的图形表示。我使用以下命令将其加载到R中。

d <- read.table("journal.txt", header=T, sep="\t")

我可以使用以下命令绘制数据图表。
plot(seq(from=1, to=length(d$Entry.Count), by=1), d$Entry.Count, type="o", ylim=c(0, max(d$Entry.Count)))

然而,在这个图中,X轴只是一个数字,而不是日期。我尝试调整命令,使X轴显示日期,如下所示。

plot(d$Date, d$Entry.Count, type="o", ylim=c(0, max(d$Entry.Count)))

然而,不仅情节看起来奇怪,而且X轴上的标签也不是很有帮助。有什么最好的方法可以绘制这个数据,以便我能清楚地将日期与绘制曲线上的点关联起来?

2个回答

5

根据您的代码,日期只是字符。

尝试将它们转换为日期:

plot(as.Date(d$Date), d$Entry.Count)

对于您的情况而言很简单,因为"%Y-%m-%d"格式是as.Date的默认格式。有关更一般的选项,请参见strptime。


非常简单且有帮助。谢谢! - Daniel Standage

2
您可以使用zoo?plot.zoo中有几个示例,展示如何创建自定义轴标签。
z <- zoo(d[,-1],as.Date(d[,1]))
plot(z)

# Example of custom axis labels
plot(z$Entry.Count, screen = 1, col = 1:2, xaxt = "n")
ix <- seq(1, length(time(z)), 3)
axis(1, at = time(z)[ix], labels = format(time(z)[ix],"%b-%d"), cex.axis = 0.7)

对象 tt 是从哪里来的? - Daniel Standage
@Daniel 哎呀,我复制/粘贴得不够仔细:tt <- time(z) - Joshua Ulrich
比其他答案要复杂一些,但当需要微调它以使其看起来完全符合我的要求时,这可能会很有用。谢谢! - Daniel Standage

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接