【发布时间】:2017-01-24 15:27:04
【问题描述】:
我想在同一个图上绘制多条线,而不使用 ggplot。
我在设定的时间段内有不同个人的分数,并希望在每个人的年度分数之间绘制一条线。数据的组织方式是,每一行代表一个人,每一列代表一个给定年份的观察值。
目前我正在使用 for 循环,但我知道这在 R 中通常效率不高,并且如果在基本 R 中有任何更合适的方法可用,我很感兴趣。
我将与多达 100,000 人合作
谢谢。
代码:
df=data.frame(runif(10,0,100),runif(10,0,100),runif(10,0,100),runif(10,0,100))
df=data.frame(t(df))
Years=seq(1,10,1)
plot(1,type="n",xlab="Year",ylab="Score", xlim=c(1,10), ylim=c(0,100))
for(x in 1:4){lines(Years,df[x,])}
【问题讨论】:
-
For 循环在 R 中并不是“低效的”,由于矢量化,它们在许多情况下并不是必需的。在这种情况下,我会使用与您相同的代码。如果将数据框转换为矩阵,可以使用
matplot,但需要调整默认值并设置type = 'l'。