【问题标题】:controlling x-axis time stamp on filled.contour plot - R在填充的轮廓图上控制 x 轴时间戳 - R
【发布时间】:2016-12-16 14:53:14
【问题描述】:

我一直在查看文档,但我无法弄清楚如何控制 R 中 filled.contour() 绘图的 x 轴上的时间戳。我尝试过 axis.POSIXct()plot.axes = {}。但两者都不适合我。

这是我的简化示例:

x1 <- seq(as.Date("2016-01-01"),as.Date("2018-07-01"),by="month")
z1 <- c(0.45062130 ,0.51136174 ,0.6 ,0.8 ,0.29481738 ,0.6 ,0.27713756 ,0.62638512 ,0.23547530,0.29253901 ,0.75899501 ,0.67779756 ,0.51831742 ,0.08050147 ,0.71183739 ,0.13154414 ,0.79406706 ,0.13154414,0.03434758 ,0.59573892 ,0.22102821 ,0.13154414 ,0.13154414 ,0.13154414 ,0.13154414 ,0.13154414 ,0.23692593,0.95215104 ,0.38810846 ,0.17970580 ,0.05176054)
z2 <- z1^2
z3 <- z2^2
df <- data.frame(x1,z1,z2,z3)


time <- c(x1)
depths <- c(1,2,3)
temp2 <- as.matrix(data.frame(df$z1,df$z2,df$z3))
temp2<- matrix(temp2,ncol=ncol(temp2), dimnames = NULL)
filled.contour(time,depths,temp2, col=(matlab.like2(28)), 
               ylab="Depth", xlab="Time",
               key.title=title(expression('  Temp ('*degree*'C)')),xaxs="i")

哪个输出:

X 轴标签采用年份格式。我希望每个月的格式为%b-%y(例如 5 月 16 日、6 月 16 日等)。我该怎么做呢?

【问题讨论】:

    标签: r plot timestamp contour


    【解决方案1】:

    下面是使用plot.axes 选项和axis.Date 的方法。

    filled.contour(time,depths,temp2, #col=(matlab.like2(28)),
           ylab="Depth", xlab="Time",
           plot.axes = { axis.Date(side=1,x=time,at=time,format="%b-%y"); axis(2) },
           key.title=title(expression('  Temp ('*degree*'C)')),xaxs="i")
    

    【讨论】:

    • 虽然我尝试了这个,但它确实有效。对于我的实际数据集,它为每个时间戳提供了一个刻度线。有没有办法控制滴答频率?
    • 滴答频率由x=time,at=time 参数控制。将时间替换为仅包含刻度所需日期的向量。我无法使用您的数据,因为它已经是每月一次,但请在包 xts 中查找 to.monthly
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多