gpt4 book ai didi

r - 如何在给定格子条件的情况下绘制叠加多个时间序列?

转载 作者:行者123 更新时间:2023-12-02 02:19:02 26 4
gpt4 key购买 nike

假设我有一个数据框 df,它看起来像:

f t1 t2 t3
h 1 3 4
h 2 4 3
t 3 4 5
t 5 6 8

f 是一个因素,$t 属性是与时间顺序事件相关的数值。我可以使用 par(new=T) 将时间序列 t1 叠加到 t3 并手动按因子隔离。但我想知道是否有一些方法可以用格子来做到这一点,其中叠加的时间序列受因素制约。所以我们会有两个面板,重叠的时间序列对应于条件因素 f。我见过的大多数例子每个因素只使用一个时间序列(向量)。我也考虑过使用平行图,但是时间信息丢失了。我也试过类似的东西

xyplot(df$t1+df$t2+df$t3 ~seq(3) | factor(df$f))

,但它失去了行序列连接。有人知道这是否可能吗?

这是一个使用非格子方法的非常粗略的说明。

x<-matrix(seq(12),4,3)
f<-c('a','a','b','b')
df<-data.frame(f,x)

layout(1:2); yr<-c(0,12); xr<-c(1,3);
plot(as.numeric(df[1,2:4])~seq(3),type='o',ylim=yr,xlim=xr,ylab='A')
par(new=T)
plot(as.numeric(df[2,2:4])~seq(3),type='o',ylim=yr,xlim=xr,ylab='A')

plot(as.numeric(df[3,2:4])~seq(3), type='o',ylim=yr,xlim=xr,ylab='B')
par(new=T)
plot(as.numeric(df[4,2:4])~seq(3),type='o',ylim=yr,xlim=xr,ylab='B')

最佳答案

我添加了一个 ID 变量并与 package:reshape2 融合

 dat
f t1 t2 t3 ID
1 h 1 3 4 1
2 h 2 4 3 2
3 t 3 4 5 3
4 t 5 6 8 4
datm <- melt(dat, id.vars=c("ID","f"), measure.vars=c("t1", "t2", "t3"))
> datm
ID f variable value
1 1 h t1 1
2 2 h t1 2
3 3 t t1 3
4 4 t t1 5
5 1 h t2 3
6 2 h t2 4
7 3 t t2 4
8 4 t t2 6
9 1 h t3 4
10 2 h t3 3
11 3 t t3 5
12 4 t t3 8

由于您要求将其“覆盖”,我使用组参数将 ID 和“|”分开运算符(operator)为您提供“h”和“t”的两个面板:

xyplot(value~variable|f, group=ID, data=datm, type="b")

enter image description here

关于r - 如何在给定格子条件的情况下绘制叠加多个时间序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9167801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com