我知道有一些与时间序列和多个数据帧相关的已回答问题,但我似乎无法弄清楚这一点。
我想绘制 4 个不同压力传感器与时间的时间戳数据(pa 列)。我有来自同一实验的 4 个带时间戳的压力读数。然而,由于传感器故障和数据中的其他信号,传感器收集数据的时间不相等,并且列的长度也不相等。
这两方面使我无法成功创建包含所有 4 个传感器数据的图表。所有 df 的观测数量不等,但在同一范围内,但在秒级别上有所不同。例如,时间分辨率是否需要更改为小时?
这就是 df 的样子:PA_1 n=1097361
time pa wifi
1 2014-09-01 16:21:00 100.620 1
2 2014-09-01 17:20:33 100.572 1
3 2014-09-01 18:20:05 100.561 0
4 2014-09-01 19:19:38 100.523 0
5 2014-09-01 20:19:11 100.511 1
6 2014-09-01 21:18:43 100.534 1
PA_2: n=914364
time pa wifi
1 2014-09-01 15:25:05 NA 1
2 2014-09-01 15:25:09 100.798 1
3 2014-09-01 15:25:11 100.792 0
4 2014-09-01 15:25:15 100.791 0
5 2014-09-01 15:25:18 100.790 1
6 2014-09-01 15:25:20 100.791 1
PA_3 n=963527
time pa wifi
1 2014-09-01 15:25:02 100.832 1
2 2014-09-01 15:25:05 100.832 1
3 2014-09-01 15:25:08 100.825 0
4 2014-09-01 15:25:11 100.831 0
5 2014-09-01 15:25:14 100.830 1
6 2014-09-01 15:25:17 100.836 1
PA_4: n = 1061117
time pa wifi
1 2014-09-01 15:25:00 100.690 1
2 2014-09-01 15:25:04 100.683 1
3 2014-09-01 15:25:07 100.685 0
4 2014-09-01 15:25:11 100.687 0
5 2014-09-01 15:25:14 100.682 1
6 2014-09-01 15:25:18 100.684 1
此外,在 df 中添加了一个二分变量“wifi”,以表示实验期间 wifi 何时打开或关闭。其中两个传感器暴露于 wifi,而另外两个传感器则处于 wifi 信号之外。 我也想在图表中显示它。也许是通过在实验过程中打开 wifi 时遮蔽该区域或增加线条的大小,但我不太确定如何做到这一点。为了说明这一点,我编辑了示例中中间的 2 个 wifi 条目,但 wifi 一次打开的时间为 10 天,而不是几秒钟。
谢谢
编辑:添加了每个 df 的示例并添加了一些说明
最佳答案
我并不完全清楚你在问什么,但是(如果这就是你想要做的)你可以组合 data.frames,然后将它们全部绘制在一张图表上,使用颜色来区分传感器和 alpha/shape设置来区分 wifi 状态。那么系列在不同时间开始和结束并且具有不同测量分辨率也没有问题。
类似这样的事情:
library(ggplot2)
ggplot(dat,
aes(x=time, y=pa, group=sensor,
color=factor(sensor), alpha=factor(wifi))) +
geom_point(aes(shape=factor(wifi)), size=3) +
geom_line() +
scale_alpha_manual(values=c(.3, 1))
(使用完全随机的数据)看起来像这样:
为了生成随机数据,我这样做了:
库(润滑)
# fake data
set.seed(123)
n <- 40
dat <-
data.frame(sensor=sample(1:4, n, replace=T),
hr=sample(1:24, n, replace=T),
min=sample(1:60, n, replace=T),
sec=sample(1:60, n, replace=T),
wifi=rbinom(n, 1, .5),
pa=100+rnorm(n))
dat$time <- with(dat, ymd_hms(paste('2014-09-01',
paste(hr, min, sec, sep=':'))))
关于r - ggplot多个时间不等的时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27909908/