【问题标题】:Easiest way to create an irregular time series graph (R? GGPLOT? ITS?)创建不规则时间序列图的最简单方法(R?GGPLOT?ITS?)
【发布时间】:2011-09-26 07:02:09
【问题描述】:

我是一名图形设计师,正在尝试使用 R 创建对 Excel 来说过于复杂的图形。我特别想创建一个不规则的时间序列阶梯图。我在创建常规时间序列图表时没有遇到任何问题,但由于某种原因,不规则的日期会影响一切。

我从一个包含两列数据的基本文本文件开始:

01-04-1940    4
05-29-1963    35
12-02-2002    24

我已经使用

加载了数据
d <- read.delim("file.txt", header = TRUE)

我已经使用 Unix 时间转换了第一列

d$date <- as.Date(d$date, format = "%m-%d-%Y")

但在这一点上,我无法在任何地方找到更多关于如何进行的信息。我看过 R 包“ITS”,但除了所涉及的类的技术描述之外,我找不到任何关于它的文档。

如果有 R 方面经验的人能指出创建此图表所需的几行代码,我将不胜感激。谢谢!

【问题讨论】:

  • 欢迎来到 SO,@Alex。很好的第一个问题,包含示例数据和代码。完美的。 +1

标签: r statistics ggplot2 time-series


【解决方案1】:

ggplot 可以很好地处理日期格式的数据。以下是一些建议:

d <- data.frame(
    date = c("01-04-1940", "05-29-1963", "12-02-2002"),
    value = c(4, 35, 24)
)

d$date <- as.Date(d$date, format = "%m-%d-%Y")

ggplot(d, aes(x=date, y=value)) + geom_step(colour="blue")

ggplot(d, aes(x=date, y=value)) + geom_line(colour="red")

【讨论】:

  • 安德烈,很抱歉打扰你了。谢谢你的欢迎顺便说一句。我想我已经接近这个了。我按照你对 t 的指示,除了在创建 data.frame() 时,我设置了 value = delimtable$value 和 date = delimtable$date。但是当我运行程序时,我想出了这个alexsciuto.com/screen.png。我的值的范围是 50 - 1,500,日期是 1940 年到 2011 年。我的值范围很广,会不会把事情搞砸?再次感谢!
  • 想通了!我的数字列表中有逗号。这让 R 感到困惑。去掉逗号,现在图表看起来很棒。
【解决方案2】:

我会使用 xts/zoo。它们都可以轻松处理不规则的时间序列。

z <- zoo(d[,2], d[,1])
plot(z)
plot(z, type="s")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-12
    • 2022-08-14
    • 2011-06-16
    • 2021-01-08
    • 2020-03-09
    • 1970-01-01
    • 2020-07-19
    • 2017-03-06
    相关资源
    最近更新 更多