我有一个数据框
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
Run Code Online (Sandbox Code Playgroud)
我想在同一图表上绘制这些时间序列.我也希望ABC有相同的颜色(蓝色),其他颜色为黑色.所以我用
ts.plot(df,col=c(rep("blue",3),rep("black",3)))
Run Code Online (Sandbox Code Playgroud)
这会创建正确的时间序列图,除了颜色应用于错误的系列:ABC是蓝色和黑色的混合,因此是DE 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))
Run Code Online (Sandbox Code Playgroud)
ts.plot(df,col=c(rep("blue",3),rep("black",3)))
Run Code Online (Sandbox Code Playgroud)
我认为这是在订单中指定的绝对情节A-B-C-D-E-F.所以...
A B C D E F
Blue Blue Blue Black Black Black
Run Code Online (Sandbox Code Playgroud)

如果你匹配A/B/C的价值......
A B C
2003-07 445 48 1126
2003-08 429 77 1179
2003-09 421 80 1077
Run Code Online (Sandbox Code Playgroud)
...你会看到三个蓝色系是从去445->429->421&48->77->80&1126->1179->1077,实际上你指定你想匹配.
顺便说一句,你可以简化你的情节调用:
ts.plot(df,col=rep(c("black","blue"),each=3))
Run Code Online (Sandbox Code Playgroud)
...通过使用each=函数调用的一部分.
编辑::
看看你的情况dput,看起来你的图表也将你的标签df$X作为值绘制,1,2,3因为它是a 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7615 次 |
| 最近记录: |