gpt4 book ai didi

R ts.plot() : order of series

转载 作者:行者123 更新时间:2023-12-02 05:30:06 25 4
gpt4 key购买 nike

我有一个像这样的数据框

    A   B   C   D   E   F
2003-07 445 48 1126 512 277 677
2003-08 429 77 1179 583 320 675
2003-09 421 80 1077 488 288 627

我想在同一张图上绘制这些时间序列。我还希望 A B C 具有相同的颜色(蓝色),而其他颜色为黑色。所以我用

ts.plot(df,col=c(rep("blue",3),rep("black",3)))

这会创建正确的时间序列图,除了颜色应用于错误的系列:A B C 是蓝色和黑色的混合,D E F 也是。(请注意,如果真实数据框有更多列,则问题的根源。)

ts.plot() 使用什么顺序?

编辑

df <- structure(list(X = structure(1:3, 
.Label = c("2003-07", "2003-08", "2003-09"), class = "factor"),
A = c(445L, 429L, 421L), B = c(48L, 77L, 80L),
C = c(1126L, 1179L, 1077L), D = c(512L, 583L, 488L ),
E = c(277L, 320L, 288L), FF = c(677L, 675L, 627L)),
.Names = c("X", "A", "B", "C", "D", "E", "FF"),
class = "data.frame", row.names = c(NA, -3L))

最佳答案

ts.plot(df,col=c(rep("blue",3),rep("black",3)))

我认为它绝对按照 A-B-C-D-E-F 的顺序绘制。所以……

A     B     C     D     E     F
Blue Blue Blue Black Black Black

enter image description here

如果您匹配 A/B/C 的值...

          A  B    C
2003-07 445 48 1126
2003-08 429 77 1179
2003-09 421 80 1077

...你会看到三条蓝线是从 445->429->421 & 48->77->80 & 1126->1179->1077,这实际上与您指定的内容匹配。

顺便说一句,您可以将情节调用简化为:

ts.plot(df,col=rep(c("black","blue"),each=3))

...通过使用函数调用的 each= 部分。

编辑::

查看您的dput,您的图形似乎也在绘制您的标签df$X 作为值1,2,3因为它是一个 factor 并且在绘图时被这样解释。

尝试使用这段代码从原始绘图中删除标签并重新添加:

ts.plot(df[-1],col=c(rep("blue",3),rep("black",3)),gpars=list(xaxt="n"))
axis(1,labels=as.character(df$X),at=1:3)

关于R ts.plot() : order of series,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12505009/

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