1

我正在尝试使用 5 分钟的价格观察来绘制 R 中的图表,涵盖从 2011 年 12 月到 2012 年 6 月的 6 个月期间的黄金价格走势,这意味着我有 5913 次观察我尝试修改 x 轴以在底部标记日期如下:

  rt = dat$mid
    x11()
    plot(rt, type="l", col="blue", main="Gold Price", xlab="TBC", 
ylab="Price", ylim=range(rt), xaxt="n")

axis(1, at=1:7, lab=c("Dec '11", "Jan '12", 
    "Feb '12", "Mar '12", "Apr '12", "May '12", "June '12"))

但这根本不返回轴。

默认轴范围:0 1000 2000 3000 4000 5000 6000

我也尝试更改at为,at=1:6000但这无济于事。谁能告诉我如何实现这一目标?谢谢

我应该补充一点,我已经广泛搜索了如何执行此操作的信息,但我似乎能够在轴上找到除此之外的所有内容。

根据要求提供的一些数据:

    Date    mid day returns
1   12/12/2011 00:00    1714.600    2011-12-12  NA
2   12/12/2011 00:05    1714.360    2011-12-12  -0.0139984135
3   12/12/2011 00:10    1714.050    2011-12-12  -0.0180841848
4   12/12/2011 00:15    1713.780    2011-12-12  -0.0157534067
5   12/12/2011 00:20    1712.650    2011-12-12  -0.0659578652
6   12/12/2011 00:25    1713.375    2011-12-12  0.0423231010
7   12/12/2011 00:30    1713.325    2011-12-12  -0.0029182596
8   12/12/2011 00:35    1713.935    2011-12-12  0.0355969495
9   12/12/2011 00:40    1714.950    2011-12-12  0.0592029205
10  12/12/2011 00:45    1714.675    2011-12-12  -0.0160367387
11  12/12/2011 00:50    1714.625    2011-12-12  -0.0029160470
12  12/12/2011 00:55    1714.530    2011-12-12  -0.0055407236
13  12/12/2011 01:00    1713.970    2011-12-12  -0.0326673475
14  12/12/2011 01:05    1710.730    2011-12-12  -0.1892137102
15  12/12/2011 01:10    1709.525    2011-12-12  -0.0704625854
16  12/12/2011 01:15    1708.865    2011-12-12  -0.0386146700
17  12/12/2011 01:20    1709.995    2011-12-12  0.0661039084
18  12/12/2011 01:25    1710.205    2011-12-12  0.0122799836
19  12/12/2011 01:30    1709.100    2011-12-12  -0.0646330198
20  12/12/2011 01:35    1709.050    2011-12-12  -0.0029255591
21  12/12/2011 01:40    1708.840    2011-12-12  -0.0122882831
22  12/12/2011 01:45    1709.250    2011-12-12  0.0239900062
23  12/12/2011 01:50    1709.240    2011-12-12  -0.0005850536
24  12/12/2011 01:55    1709.455    2011-12-12  0.0125778989
25  12/12/2011 02:00    1709.630    2011-12-12  0.0102366569
26  12/12/2011 02:05    1709.835    2011-12-12  0.0119901798
27  12/12/2011 02:10    1709.835    2011-12-12  0.0000000000
28  12/12/2011 02:15    1710.025    2011-12-12  0.0111115660
29  12/12/2011 02:20    1709.880    2011-12-12  -0.0084797677
30  12/12/2011 02:25    1709.540    2011-12-12  -0.0198864136
31  12/12/2011 02:30    1709.530    2011-12-12  -0.0005849544
32  12/12/2011 02:35    1709.660    2011-12-12  0.0076041402
33  12/12/2011 02:40    1709.735    2011-12-12  0.0043867409
34  12/12/2011 02:45    1710.465    2011-12-12  0.0426875628
35  12/12/2011 02:50    1709.465    2011-12-12  -0.0584807308
36  12/12/2011 02:55    1709.880    2011-12-12  0.0242736549
37  12/12/2011 03:00    1709.915    2011-12-12  0.0020469063
38  12/12/2011 03:05    1709.525    2011-12-12  -0.0228107527
39  12/12/2011 03:10    1709.415    2011-12-12  -0.0064347429
40  12/12/2011 03:15    1709.140    2011-12-12  -0.0160886691
41  12/12/2011 03:20    1708.450    2011-12-12  -0.0403793322
42  12/12/2011 03:25    1708.030    2011-12-12  -0.0245867093
43  12/12/2011 03:30    1692.650    2011-12-12  -0.9045311445
44  12/12/2011 03:35    1696.150    2011-12-12  0.2065628685
45  12/12/2011 03:40    1695.875    2011-12-12  -0.0162145032
46  12/12/2011 03:45    1699.075    2011-12-12  0.1885153506
47  12/12/2011 03:50    1698.605    2011-12-12  -0.0276659369
48  12/12/2011 03:55    1698.460    2011-12-12  -0.0085367810
49  12/12/2011 04:00    1700.215    2011-12-12  0.1032755504
50  12/12/2011 04:05    1697.800    2011-12-12  -0.1421418332
51  12/12/2011 04:10    1696.000    2011-12-12  -0.1060757952
52  12/12/2011 04:15    1694.940    2011-12-12  -0.0625195394
53  12/12/2011 04:20    1692.315    2011-12-12  -0.1549927907
54  12/12/2011 04:25    1694.240    2011-12-12  0.1136848631
55  12/12/2011 04:30    1696.505    2011-12-12  0.1335989782
56  12/12/2011 04:35    1694.550    2011-12-12  -0.1153033623
57  12/12/2011 04:40    1693.495    2011-12-12  -0.0622778053
58  12/12/2011 04:45    1693.550    2011-12-12  0.0032476687
59  12/12/2011 04:50    1693.020    2011-12-12  -0.0313001063
60  12/12/2011 04:55    1693.225    2011-12-12  0.0121078067
61  12/12/2011 05:00    1692.800    2011-12-12  -0.0251031816
62  12/12/2011 05:05    1692.850    2011-12-12  0.0029536426
63  12/12/2011 05:10    1692.775    2011-12-12  -0.0044304966
64  12/12/2011 05:15    1692.500    2011-12-12  -0.0162468337
65  12/12/2011 05:20    1693.585    2011-12-12  0.0640858122
66  12/12/2011 05:25    1693.790    2011-12-12  0.0121037677
67  12/12/2011 05:30    1693.165    2011-12-12  -0.0369063071
68  12/12/2011 05:35    1692.640    2011-12-12  -0.0310118276
69  12/12/2011 05:40    1691.665    2011-12-12  -0.0576189219
70  12/12/2011 05:45    1691.165    2011-12-12  -0.0295610482
71  12/12/2011 05:50    1689.865    2011-12-12  -0.0768996468
72  12/12/2011 05:55    1691.065    2011-12-12  0.0709863884
73  12/12/2011 06:00    1692.140    2011-12-12  0.0635492107
74  12/12/2011 06:05    1692.180    2011-12-12  0.0023638427
75  12/12/2011 06:10    1691.795    2011-12-12  -0.0227543053
76  12/12/2011 06:15    1691.860    2011-12-12  0.0038419993
77  12/12/2011 06:20    1691.790    2011-12-12  -0.0041375438
78  12/12/2011 06:25    1690.965    2011-12-12  -0.0487768116
79  12/12/2011 06:30    1689.850    2011-12-12  -0.0659604291
80  12/12/2011 06:35    1690.205    2011-12-12  0.0210055754
81  12/12/2011 06:40    1691.025    2011-12-12  0.0485030605
82  12/12/2011 06:45    1690.900    2011-12-12  -0.0073922396
83  12/12/2011 06:50    1692.000    2011-12-12  0.0650329622
84  12/12/2011 06:55    1690.885    2011-12-12  -0.0659200677
85  12/12/2011 07:00    1691.195    2011-12-12  0.0183319141
86  12/12/2011 07:05    1690.470    2011-12-12  -0.0428782869
87  12/12/2011 07:10    1690.075    2011-12-12  -0.0233690131
88  12/12/2011 07:15    1690.525    2011-12-12  0.0266224932
89  12/12/2011 07:20    1690.525    2011-12-12  0.0000000000
90  12/12/2011 07:25    1690.325    2011-12-12  -0.0118313442
91  12/12/2011 07:30    1690.890    2011-12-12  0.0334199396
92  12/12/2011 07:35    1692.000    2011-12-12  0.0656243650
93  12/12/2011 07:40    1691.150    2011-12-12  -0.0502490293
94  12/12/2011 07:45    1690.765    2011-12-12  -0.0227681655
95  12/12/2011 07:50    1686.855    2011-12-12  -0.2315240759
96  12/12/2011 07:55    1686.200    2011-12-12  -0.0388371970
97  12/12/2011 08:00    1687.240    2011-12-12  0.0616581313
98  12/12/2011 08:05    1687.505    2011-12-12  0.0157048903
99  12/12/2011 08:10    1688.815    2011-12-12  0.0775992836
100 12/12/2011 08:15    1688.675    2011-12-12  -0.0082901800
4

2 回答 2

3

这是我评论的扩展。我将制作一些假数据并绘制它:

> t = seq(as.Date("2011-11-1"),as.Date("2012-06-1"),by=as.difftime("0:15:00"))
> length(t)
[1] 20449
> v = rnorm(length(t))
> plot(t,v)
> plot(t,v,type="l")

我的 x 轴很好地标有日期。我得到 20,449 个 15 分钟的间隔......

从您的数据文件中(我不得不添加一些逗号,因为我认为制表符分隔符丢失并且您有行号):

> gold=read.csv("gold.csv",sep=",",as.is=TRUE)
> gold$Tim = strptime(gold$Date, "%d/%m/%Y %H:%M")
> head(gold)
  row                Date      mid           day         returns
1   1  12/12/2011 00:00   1714.600    2011-12-12              NA
2   2  12/12/2011 00:05   1714.360    2011-12-12   -0.0139984135
3   3  12/12/2011 00:10   1714.050    2011-12-12   -0.0180841848
                       Tim
 1 2011-12-12 00:00:00
 2 2011-12-12 00:05:00
 3 2011-12-12 00:10:00

现在 summary(gold) 告诉我“returns”是字符,因为一开始就烦人的 NA。让我们解决这个问题:

> gold$returns=as.numeric(gold$returns)

然后简单地说:

> plot(gold$Tim,gold$returns,type="l")

您可能想要调查时间序列数据的包,例如 zoo 或 xts,或者阅读从 R 网页链接的时间序列或财务任务视图...

于 2012-07-16T10:16:36.097 回答
1

实际上我猜你得到了一个 x 轴:它太短了,无法阅读(即只标记前七个点)。

当您将 at 更改为 1:6000 时,您应该收到一条错误消息,例如“轴错误(...):'at' 和 'labels' 长度不同 5913 != 7”

尝试类似axis(blahblah, at = floor(seq(from = 1, to = 5913, length.out = 7)), blahblah)

如果这很重要,您应该调整 seq 函数中的参数,以确保刻度确实在您期望的位置。

于 2012-07-16T10:02:12.090 回答