在一个图上绘制两个泊松过程

时间:2014-12-08 20:21:04

标签: r

我有两个泊松过程:

n <- 100
x <- seq(0, 10, length = 1000)
y1 <-  cumsum(rpois(1000, 1 / n))
y2 <- -cumsum(rpois(1000, 1 / n))

我想在一个图中绘制它们,并期望y1位于x轴上方,y2位于x轴下方。我尝试了以下代码:

plot(x, y1)
par(new = TRUE)
plot(x, y2, col = "red",
 axes = FALSE, 
 xlab = '', ylab = '', 
 xlim = c(0, 10), ylim = c(min(y2), max(y1)))

但它不起作用。有人可以告诉我如何解决这个问题吗? (我正在使用R代替我的代码)

非常感谢提前

2 个答案:

答案 0 :(得分:6)

怎么样

plot(x,y1, ylim=range(y1,y2), type="l")
lines(x, y2, col="red")

enter image description here

我建议尽量避免使用par(new=TRUE)进行多次调用。那通常很乱。在这里,我们使用lines()添加到现有的情节中。唯一的问题是x和y限制不会根据新数据发生变化,因此我们会在第一次ylim调用中使用plot()来设置适合所有数据的范围。

答案 1 :(得分:3)

或者,如果您不想担心限制(如提到的MrFlick)或行数,您也可以使用meltggplot

来提升数据量
df <- data.frame(x, y1, y2)
library(reshape2)
library(ggplot2)
mdf <- melt(df, "x")
ggplot(mdf, aes(x, value, color = variable)) +
  geom_line()

enter image description here