用许多数据点可视化两个时间序列的优雅方法是什么?

机器算法验证 时间序列 数据可视化
2022-03-28 05:07:44

我需要在R. 我面临的问题如下。每个图有 200 个数据点,因此,我生成的图表在我的两列 pdf 文件中看起来很笨拙。我正在尝试使用不同pch的值,但图表对我来说仍然不好看。有人可以帮我以一种优雅的方式可视化这些数据吗?请看下图。最重要的要求是图表要清晰on printing

我使用的R代码如下:

plot(temp11, type="b", col="blue", ylim=c(0.5,1), lwd=0.8, lty=4, pch=1, xlab="Time", ylab="price", cex.lab=1.2,cex.axis=1.2)
> lines(temp22, type="b", col="red", lwd=1.5,lty=1, pch=18)
> legend("top",legend=c("temp11","temp22"),lty=c(4,1),pch=c(1,18), col=c("blue", "red"),text.col=c("blue", "red"))

在此处输入图像描述

2个回答

部分透明度(“alpha”)可能会在这里为您提供帮助,例如:

> temp11=runif(100)
> temp22=runif(100)
> plot(temp11, type="p", col=rgb(0.2, 0.2, 1, 0.6), pch=19, xlab="Time", ylab="price")
> lines(temp11, lwd=3, col=rgb(0.2, 0.2, 1, 0.3))
> points(temp22, pch=19, col=rgb(1, 0.2, 0.2, 0.6))
> lines(temp22, lwd=3, col=rgb(1, 0.2, 0.2, 0.3))

这是图像的示例: http://i.stack.imgur.com/PUdkm.png

runif 数据看起来不太好,但在您的数据上,我认为它会更好一些。Alpha 支持取决于设备,但 PDF 确实支持它。

这就是我在评论中想要说的,更详细一点(尽管这可能不是你问题的答案)。首先,获取一些数据。

x <- arima.sim(200, model = list(ar = 0.6)) + 3
y <- arima.sim(200, model = list(ar = -0.7)) - 3

有两列的图看起来像这样:

par(mfrow = c(1,2))
plot(x)
plot(y)

像这样的图表:

在此处输入图像描述

而有两的情节看起来像这样:

par(mfrow = c(2,1))
plot(x)
plot(y)

像这样的图表:

在此处输入图像描述

如果您想将两个系列保持在同一轴上,那么您可以这样做:

par(mfrow = c(1,1))
ts.plot(x, y)

看起来像这样:

在此处输入图像描述

我试图传达的是,如果你让情节更宽而不是更高,那么它有助于更​​好地了解漫长的时间序列中发生的事情。您可以手动调整图形设备的大小以获得您喜欢的方面,或者如果您使用RStudio,当您导出图像时,您可以设置所需的任何尺寸。