【问题标题】:How do I format an X axis which uses UNIX epoch seconds into years/months in R?如何将使用 UNIX 纪元秒的 X 轴格式化为 R 中的年/月?
【发布时间】:2020-10-16 02:35:41
【问题描述】:

我有以下 R 数据集,其中 X 轴是 UNIX 纪元秒,我正在尝试使用以下代码对其进行绘制:

print("PLOT DATA")
print(dataset[1:10,])
plot(dataset[,"timestamp"], dataset[,"close"], cex=0, xlab="", ylab="")
lines(dataset[,"timestamp"], dataset[,"close"], xlab="", ylab="")
title(main="AAPL 2005-2010 DAILY CLOSE PRICES", xlab="Year", ylab="Price")

生成:

[1] "PLOT DATA"
    timestamp   open   high    low  close     volume
1  1104814800 1.1393 1.1691 1.1245 1.1418 1097193328
2  1104901200 1.1491 1.1652 1.1438 1.1518  680729056
3  1104987600 1.1551 1.1591 1.1309 1.1527  704141984
4  1105074000 1.1607 1.2434 1.1563 1.2366 2234953728
5  1105333200 1.2482 1.2625 1.2122 1.2315 1735512240
6  1105419600 1.2190 1.2348 1.1454 1.1529 2614860808
7  1105506000 1.1670 1.1768 1.1304 1.1690 2028471312
8  1105592400 1.3152 1.3290 1.2452 1.2465 3168234216
9  1105678800 1.2536 1.2807 1.2356 1.2536 1757210000
10 1106024400 1.2454 1.2625 1.2359 1.2616 1005413024

我得到:

如何使绘图中的 xticks 显示年份 YYYY 或月份-年份 MM-YY 而不是 UNIX 纪元秒值?

数据

dataset <- structure(list(timestamp = c(1104814800L, 1104901200L, 1104987600L,  1105074000L, 1105333200L, 1105419600L, 1105506000L, 1105592400L,  1105678800L, 1106024400L), open = c(1.1393, 1.1491, 1.1551, 1.1607,  1.2482, 1.219, 1.167, 1.3152, 1.2536, 1.2454), high = c(1.1691,  1.1652, 1.1591, 1.2434, 1.2625, 1.2348, 1.1768, 1.329, 1.2807,  1.2625), low = c(1.1245, 1.1438, 1.1309, 1.1563, 1.2122, 1.1454,  1.1304, 1.2452, 1.2356, 1.2359), close = c(1.1418, 1.1518, 1.1527,  1.2366, 1.2315, 1.1529, 1.169, 1.2465, 1.2536, 1.2616), volume = c(1097193328,  680729056, 704141984, 2234953728, 1735512240, 2614860808, 2028471312,  3168234216, 1757210000, 1005413024)), class = "data.frame", row.names = c("1",  "2", "3", "4", "5", "6", "7", "8", "9", "10"))

【问题讨论】:

标签: r


【解决方案1】:

从上面的 cmets 中,一种可能的解决方案是:

print("PLOT DATA")
print(dataset[1:10,])
xaxis = as.POSIXct(dataset[,"timestamp"], origin="1970-01-01")
plot(xaxis, dataset[,"close"], cex=0, xlab="", ylab="", format="%Y")
lines(xaxis, dataset[,"close"], xlab="", ylab="")
title(main="AAPL 2005-2010 DAILY CLOSE PRICES", xlab="Year", ylab="Price")

现在我想知道文本是否可以旋转 45%,但这是一个不同的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 2018-10-24
    • 2017-12-06
    相关资源
    最近更新 更多