【发布时间】:2020-10-22 05:27:39
【问题描述】:
我对 R 还是很陌生,一直在努力寻找解决方案。
我有一个列表,其中包含与每个月对应的 12 个数据框。 (Data$January、Data$February 等)。
每个数据框都包含该月在某个年份范围内的时间序列数据。我想可视化这些数据,但是当我尝试使用 ggplot 时
ggplot(Data$January, aes(x = `Date`, y = `WaterLevel`)) +
geom_point()
显示 1 月份的数据,但该图显示年份跨度,但包括 2 月至 12 月的空白月份。反正有没有让情节只显示一月?
数据的结构是:
'data.frame':15412 obs。 13 个变量:
$ 日期:日期,格式:“2006-01-01”“2006-01-02”“2006-01-03”“2006-01-04”...
$ 站 : chr "NBS01" "NBS01" "NBS01" "NBS01" ...
$ Station.Id : 编号 324 324 324 324 324 324 324 324 324 324 ...
$ Water_level: num 201 203 203 203 203 206 206 208 208 208 ...
$ 等效项:num NA NA NA NA NA NA NA NA NA NA ...
$ site_id:数字 324 324 324 324 324 324 324 324 324 324 ...
$ POSIXct:POSIXct,格式:“2006-01-01”“2006-01-02”“2006-01-03”“2006-01-04”...
$ wtr_lvlp : 数字 186 190 191 191 191 ...
$ equiv_p : 数量 0.683 0.711 0.699 0.691 0.681 ...
$ wtrlvl_Diff : 数字 14.8 12.9 12.3 11.8 11.6 ...
$ equiv_Diff : 数量 0.683 0.711 0.699 0.691 0.681 ...
$ wtrlvl_RMSE : 数字 84.1 84.1 84.1 84.1 84.1 ...
$ equiv_RMSE : num NA NA NA NA NA NA NA NA NA NA ...
编辑 3:dp(head(data$January))
structure(list(Date = structure(c(13149, 13150, 13151, 13152,
13153, 13154), class = "Date"), Station = c("NBS01",
"NBS01", "NBS01", "NBS01", "NBS01", "NBS01"
), Station.Id = c(324, 324, 324, 324, 324, 324), Water_level = c(201,
203, 203, 203, 203, 206), Equivalent = c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), site_id = c(324,
324, 324, 324, 324, 324), POSIXct = structure(c(1136073600, 1136160000,
1136246400, 1136332800, 1136419200, 1136505600), class = c("POSIXct",
"POSIXt"), tzone = "UTC"), wtr_lvlp = c(186.2000028, 190.1000028,
190.7000028, 191.2000028, 191.4000029, 191.6000029), equiv_p = c(0.682899983,
0.711299982, 0.699199982, 0.690699983, 0.681199983, 0.672699983
), wtrlvl_Diff = c(14.79999723, 12.89999717, 12.29999716, 11.79999715,
11.59999715, 14.39999714), equiv_Diff = c(0.682899983, 0.711299982,
0.699199982, 0.690699983, 0.681199983, 0.672699983), wtrlvl_RMSE = c(84.1300149026027,
84.1300149026027, 84.1300149026027, 84.1300149026027, 84.1300149026027,
84.1300149026027), equiv_RMSE = c(NA_real_, NA_real_, NA_real_,
NA_real_, NA_real_, NA_real_)), row.names = 1097:1102, class = "data.frame")
【问题讨论】:
-
答案可能很大程度上取决于
Data的结构和内容。你能提供给我们Data$January吗?最简单的方法是将dput(Data$January)的输出复制并粘贴到问题中。 -
当然,但是它很长。请给我一秒钟来编辑帖子。
-
dput(head(Data$January))如果很长也可以,否则。 -
谢谢,OP。根据你分享的内容,这个情节很好:
ggplot(df, aes(x = Date, y = Water_level)) + geom_point()。请注意,您在列名周围有单引号,并且“Water_level”与您的数据集有拼写错误。这是这里的问题吗? -
不,我很抱歉。我在顶部错误地输入了我的代码(WaterLevel 而不是 Water_level),但它在 R 中是正确的。出现的图显示了我想要的数据,是的,但是我假设的年份之间有空格是因为该情节考虑到 2 月至 12 月。因此,1 月的数据在交互中看起来是压缩的和垂直的,我希望它们分散开来。我也尝试过 facet_grid() 但我仍然遇到同样的问题,即显示全年的数据似乎是这样的。