如何在同一R散点图中绘制多个序列?

问题描述

| 我经常使用Excel中的散点图来可视化一个时间序列与另一个时间序列,但是由于最近的数据更容易理解,因此我在最近的时间段使用了不同的亮点: 在这种情况下,月,周和今天的图只是同一时间序列的不同(较新)片段,因此,此图表中基本上有四个叠加的图。如何在R中做同样的事情?我到目前为止: 但我想复制我在excel中的功能。如何在R中的同一图表上添加新图? 也许我什至可以走得更远,并使用R图中的col属性使颜色持续增加直到今天的值,从而避免这些谨慎的步骤?我该怎么做?     

解决方法

这是一个简单的示例,说明如何使用
ggplot
进行操作:
library(ggplot2)

day <- 1:100
dat <- data.frame(
  day=day,x = day+(1+rnorm(100,10)),y = 5 + day+(1+rnorm(100,when = cut(day,5)
)

ggplot(dat,aes(x=x,y=y,colour=when)) + geom_point()
对于平滑的颜色:
ggplot(dat,colour=day)) + geom_point() + 
    scale_colour_gradient(low=\"pink\",high=\"red\")
    ,您可以使用较低级别的绘图功能
points()
将点添加到已经存在的绘图中。它的工作原理与您通过
plot()
创建散点图的方式完全相同,只是它会向当前使用的点添加点。 例如:
plot(1:10)
points(10:1,col=\"red\")
编辑: 上色的一种方法是按照Chi的建议使用
rgb()
。我喜欢创建一个虚拟变量,其值在0到1之间,并将其用作颜色上的标量。例如:
x <- rnorm(100)
y <- 0.5*x + rnorm(100)
z <- 0.5*y + rnorm(100)

dum <- (z - min(z)) / (max(z) - min(z))

plot(x,y,col=rgb(1-dum*0.4,1-dum*0.8,1-dum*0.8),pch=16)
这会使点变红,因为它们的
z
值更高。当然,您可以将
min(z)
max(z)
更改为您感兴趣的刻度范围。