【发布时间】:2019-12-09 17:02:11
【问题描述】:
我正在尝试掌握 R 中的绘图技巧,为此我使用以下代码一次生成各种时间序列图。
pl <- as.character()
for (k in (2:ncol(db))){
h <- paste0("ts.plot(cbind(db[,1], y = db[,",k,"]), type = 'b',
gpars = list(col = c('black', 'red')),
main = 'copper & ",colnames(db[,k]),"');")
pl <- paste0(pl, h)
}
eval(parse(text=substr(pl, 1, (nchar(pl)-1))))
代码运行良好,但我无法理解:
在这里,我一直在尝试将
db[,1]中的系列与所有其他系列进行对比。如何使用ts.plot将它们绘制成两个单独的图?如何将美学从点更改为线?
我知道使用ggplot2 可以实现更好的图形集。但是,使用与ggplot2 相同的想法无法生成图表,要么没有,要么只有最后一个(也请查看我之前在此处发布的内容,如果您有更好的解决方案,请随时分享:Why is R function parse substituting semicolons with commas?)
无论如何,如果有人可以帮助解决上述两个问题,我将非常高兴。
请使用此db 重现我的示例(任何时间序列都可以)
library(stats)
set.seed(1)
x <- stats::rnorm(n = 100, mean = 0, sd = 1)
y<- stats::rnorm(n = 100, mean = 1, sd = 1)
z <- stats::rnorm(n = 100, mean = 2, sd = 1)
u <- stats::rnorm(n = 100, mean = 3, sd = 1)
db <- cbind(x,y,z,u)
【问题讨论】:
-
您能否提供一个可重复的示例来说明您要绘制的数据?见:stackoverflow.com/questions/5963269/…
-
有趣的问题。但是为了提供帮助,如果您提供reproducible example,我们将非常高兴。如果你不能自己渲染,你也可以用图像软件勾勒出你想要的结果吗?
-
谢谢@dc37,Parfait,我编辑为 db 添加了一些数据。事实上,我正在研究一些随机时间序列,所以任何浮点矩阵都可以正常工作