在R中以美​​国数字顺序保持美国风格日期

时间:2016-08-31 19:14:24

标签: r date plot

我试图制作一个月内高温和低温的简单图表。数据来自具有此格式的表格。

Date    High    Low
8/1/2016    84  78
8/2/2016    83  79
8/3/2016    93  57
8/4/2016    94  68
8/5/2016    99  75
8/6/2016    82  78
8/7/2016    88  57
8/8/2016    100 58
8/9/2016    92  68
8/10/2016   84  55
8/11/2016   85  55
8/12/2016   96  56
8/13/2016   85  71
8/14/2016   74  66
8/15/2016   73  53
8/16/2016   93  79
8/17/2016   86  71
8/18/2016   90  70
8/19/2016   71  51
8/20/2016   87  53
8/21/2016   96  66
8/22/2016   70  66
8/23/2016   81  71
8/24/2016   77  76
8/25/2016   83  65
8/26/2016   82  64
8/27/2016   78  52
8/28/2016   86  61
8/29/2016   81  50
8/30/2016   95  53
8/31/2016   92  56
我是这样画的:

data=read.table('data location', header=1)
plot(data[,1],data[,2])
lines(data[,1],data[,2])

ploted data

当我查看日期数据框时,我得到以下内容

data[,1]
[1] 8/1/2016  8/2/2016  8/3/2016  8/4/2016  8/5/2016  8/6/2016  8/7/2016  8/8/2016  8/9/2016  8/10/2016 8/11/2016 8/12/2016 8/13/2016 8/14/2016 8/15/2016 8/16/2016 8/17/2016 8/18/2016
[19] 8/19/2016 8/20/2016 8/21/2016 8/22/2016 8/23/2016 8/24/2016 8/25/2016 8/26/2016 8/27/2016 8/28/2016 8/29/2016 8/30/2016 8/31/2016
31 Levels: 8/1/2016 8/10/2016 8/11/2016 8/12/2016 8/13/2016 8/14/2016 8/15/2016 8/16/2016 8/17/2016 8/18/2016 8/19/2016 8/2/2016 8/20/2016 8/21/2016 8/22/2016 8/23/2016 ... 8/9/2016

底部的级别显然是按字母顺序排列数据而不是数字格式....我尝试用as.character.date转换它但是它不会用它绘图,抱怨无限xlim值。

1 个答案:

答案 0 :(得分:4)

最好转换为Date

data$Date <- as.Date(data$Date, "%m/%d/%Y")
plot(data[,1],data[,2])
lines(data[,1],data[,2])

如果我们需要plot中“日期”的原始格式,那么我们可以在xaxt="n"中设置plot并使用axis更改刻度标签

plot(data[,1],data[,2], xaxt = "n")
lines(data[,1],data[,2])
axis(1, data[,1], format(data[,1], "%m/%d/%Y"))