【问题标题】:Adding multiple lines to plot, without ggplot添加多行绘图,没有ggplot
【发布时间】: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'

标签: r plot


【解决方案1】:

在绘图时效率并不是一个重要的考虑因素,因为绘图到设备本身就是一项缓慢的操作。您可以使用matplot(在内部使用循环)。它基本上是包装在函数中的代码的更复杂版本。

matplot(Years, t(df), xlab="Year", ylab="Score", type = "l")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多