【问题标题】:Plot two columns in R from csv file从 csv 文件中绘制 R 中的两列
【发布时间】:2015-11-20 08:22:00
【问题描述】:

我刚刚开始学习 R,但在绘制从 CSV 文件中读取的一些值时遇到了问题。

我已经成功加载了 csv 文件:

timeseries <- read.csv(file="R/scripts/timeseries.csv",head=FALSE,sep=",")

检查时间序列的内容时,我得到了正确的结果(到目前为止,很好):

1     2016-12-29T19:00:00Z  6
...
17497 2016-12-30T00:00:00Z  3

现在,我正在尝试绘制值 - 日期应该在 x 轴上,值应该在 y 轴上。

我发现了一些关于这个主题的 SO 问题:How to plot a multicolumn CSV file?。但我无法按照说明进行操作。

我试过了:

matplot(timeseries[, 1], timeseries[, -1], type="1")

另外,我尝试了各种 barplotmatplot 修改,但我通常会得到一些像这样的异常:Error in plot.window(...) : need finite 'xlim' values

有人可以建议如何解决这个问题吗?对不起,基本问题...

【问题讨论】:

  • 建议:1) 将你的日期列变成一个 R 日期对象,2) 把你的值列变成一个时间序列对象,3) 绘制最终对象。您可以在此站点上找到如何实现每一步搜索。关键字:xtsPOSIXltstrptime

标签: r


【解决方案1】:

你需要确保你的日期有类 Date。

dates <- c("2016-12-29T19:00:00Z", "2016-12-30T00:00:00Z")
values <- c(6,3)
df <- data.frame(dates, values)
df$dates <- as.Date(df$dates)

那么你可以使用ggplot2

library(ggplot2)
qplot(df$dates, df$values) + geom_line()

甚至默认

plot(df$dates, df$values, type = "l") 

或者你提到的问题中的格子

library(lattice)
xyplot(df$values ~ df$dates, type = "l")

【讨论】:

  • 哦,我花了很多时间寻找日期转换。这就像一个魅力。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-02
  • 1970-01-01
  • 2015-02-07
  • 2020-09-08
  • 2020-10-24
  • 1970-01-01
  • 2015-10-06
相关资源
最近更新 更多