在R中绘制xts对象时更改日期格式

问题描述 投票:1回答:1

可悲的是this answer here似乎不适合我。

从我在文档中看到的,in the latest version, 0.10-1, the major.format parameter has been removed,反对以前的版本,like 0.9-7, which has the major.format,这将很容易解决我的问题。

这似乎是一个被弃用的主要特征。有没有新的方法来做到这一点?看似简单易行,但我一直在挖掘这个问题几个小时而没有成功。

如果问题出在我的代码中,这里是我正在使用的代码片段。

merra2 = read.table("C:/merra2.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)

merra2$utc = as.POSIXct(merra2$utc, format = "%Y-%m-%d %H:%M:%S", tz="UTC")
merra2$m2_power = as.xts(x=merra2[,"m2_power"],order.by=merra2[,"utc"])
merra2$doy = as.xts(x=merra2[,"doy"],order.by=merra2[,"utc"])

plot.xts(merra2$m2_power, col="blue", lwd = 2, major.ticks="weeks", subset="2012-04-01/2014-04-01")
plot.xts(merra2$m2_power, col="blue", lwd = 2, major.ticks="months", subset="2012-04-01/2014-04-01")

输入文件包含以下内容:

utc,m2_power,doy
"1980-01-01 00:00:00",643.000,181.5000
"1980-01-01 01:00:00",643.000,181.4583
"1980-01-01 02:00:00",354.000,181.4167

如果我添加major.format参数,没有任何变化,轴保持不变。

r plot xts zoo
1个回答
0
投票

这里是一个可重复的例子:

# Generate a sequence of Dates
StartDate<-"2017-07-01"
EndDate<- "2018-07-05"

dates<-seq(as.POSIXct(StartDate, format="%Y-%m-%d", tz="UTC")
    , as.POSIXct(EndDate, format="%Y-%m-%d", tz="UTC")
    , by='mins')

# Generate a sequence of x
x <- seq(1, length(dates))

# Create a dataframe, renaming columns
df <- as.data.frame(cbind(as.character(dates,format="%Y-%m-%d", tz="UTC"),x))
colnames(df) <- c("Dates","x")

# Redefine format
df$Dates <- as.POSIXct(df$Dates,format="%Y-%m-%d", tz="UTC")
df$x2 <- as.xts(x= as.numeric(df$x),order.by=df$Dates )

# Plot results
plot.xts(df$x2
, col="blue"
, lwd = 2
, major.ticks="weeks"
, major.format = TRUE
, subset="2017-08-01/2017-08-30")

如果更改“major.ticks”,则更改轴...您是否看过“utc”变量?什么是完整的时间间隔?

© www.soinside.com 2019 - 2024. All rights reserved.