R ggplot2在一个图中绘制了几个时间序列

时间:2011-10-19 11:44:37

标签: r ggplot2 time-series

在成功(在你的帮助下)绘制单个(一个变量)图形中的meteo变量后,我试图在一个面板中生成一个包含我的数据中不同变量的时间序列的面板,如{{{ 3}}。我尝试使用我的数据重现ggplot2 webpage example(页面底部的最后一个图表),但没有成功

我的数据已经持续了好几年,但我只附上了一个月。您可以在that example

处看到dput(datos)的输出

这是我正在尝试的代码

datos=read.csv("paterna.dat",sep=";",header=T,na.strings="-99.9")
dm=melt(datos,id="FECHA.H_SOLAR")

datos$PRECIP[is.na(datos$PRECIP)]=0
dm=melt(datos,id="FECHA.H_SOLAR")
qplot(date, value, data = dm, geom = "line", group = variable) +  facet_grid(variable ~ ., scale = "free_y") 
Error: geom_line requires the following missing aesthetics: x
Además: Mensajes de aviso perdidos
1: In min(x) : ningún argumento finito para min; retornando Inf
2: In max(x) : ningun argumento finito para max; retornando -Inf

我尝试了qplot,因为它出现在引用的例子中,但也许最好使用ggplot并设置美学。然后我也可以自定义轴。

提前致谢

1 个答案:

答案 0 :(得分:7)

问题是双重的。首先,融化的date中没有data.frame对象,它会给出错误消息。其次,您的FECHA.H_SOLAR是一个可以严格绘制日期的因素。所以这是我的解决方案:

datos <- source("http://ubuntuone.com/42j1RqUmNmxUuCppW4gElX")[[1]]
library(reshape2)
library(ggplot2)

datos$PRECIP[is.na(datos$PRECIP)] <- 0
dm <- melt(datos,id="FECHA.H_SOLAR")
# change FECHA.H_SOLAR to POSIXct so you get your dates right
dm$Fecha <- as.POSIXct(dm$FECHA.H_SOLAR, "%y/%m/%d %H:%M:%S", tz = "")
qplot(Fecha, value, data = dm, geom = "line", group = variable) +
  facet_grid(variable ~ ., scale = "free_y")

enter image description here

希望它有助于