在r的相同xy平面上绘制多条线(999)

时间:2018-09-16 23:17:23

标签: r

我有两个变量,我想在每个新数据集的同一xy平面上引导并绘制所得线性回归线。

我当时在想我可以保留lm()的每个结果截距和斜率,但是我不知道如何在同一图中为每个结果对信息绘制该信息。我知道abline()可以一对,但不是全部。随意向我扔任何东西。

intercept_stuff<-rep(NA,T)

opp_stuff<-rep(NA,T)
N<-1000
for(t in 1:T){
idx <- sample(1:N, size =N, replace=TRUE)
intercept_stuff[t]<- lm(oppose_any~local_topic ,data = facebook[idx, 
])$coefficient[1] 

opp_stuff[t]<- lm(oppose_any~local_topic ,data = facebook[idx, 
])$coefficient[2] 
}

1 个答案:

答案 0 :(得分:0)

这里是一个示例,该示例说明如何使用某些模拟数据在ggplot上执行多对线。希望这会给您一些有用的线索:

library(reshape2)
library(tibble)

# simulate some data
obs <- c(1:90)
values1 <- rnorm(90,mean=0,sd=1)
values2 <- rnorm(90,mean=5,sd=2)
values3 <- rnorm(90,mean=10,sd=3)
df <- as.tibble(cbind(obs,values1,values2,values3))

它看起来像这样:

> df
# A tibble: 90 x 4
     obs values1 values2 values3
   <dbl>   <dbl>   <dbl>   <dbl>
 1    1.  -0.162    7.47   10.7 
 2    2.   0.518    5.17    7.61
 3    3.   1.52     7.66    4.42
# ... with 80 more rows

然后melt将其转换为长格式:

m.df <- melt(df,id="obs",measures=c("values1","values2","values3"))

看起来像这样:

> m.df
    obs variable       value
1     1  values1 -0.16228714
2     2  values1  0.51755370
3     3  values1  1.52433685
4     4  values1 -1.82067006
5     5  values1 -1.42180601
...

然后绘制多条线(只要这里有color组之类的组,它们将是唯一的线):

ggplot(m.df,aes(x=obs,y=value,color=variable)) + geom_line()

这是情节:

stacked lines

祝你好运!