【问题标题】:Loop inside a plot for multiple points()在绘图内循环多个点()
【发布时间】:2018-03-23 12:38:24
【问题描述】:

我有一个 17 行 40 列的 data.frame (df)。我想像这样绘制所有这些列:

windows()
plot(NULL,xlim=c(0,17),ylim=c(5000,90000),xaxt='n',xlab="", ylab="")
points(df$c1,type="b",pch=15,col="gold3")
points(df$c2,type="b",pch=15,col="gold3")
.  
.
points(df$c40,type="b",pch=15,col="gold3")

我想在绘图内创建一个循环,而不必为 40 列编写所有行。我尝试了不同的事情但没有成功。提前致谢!

【问题讨论】:

  • 您是否有特殊原因要使用循环解决此问题,而不是使用长数据格式的 ggpot2
  • 没想到...而且我不知道使用 ggplot2 可以做到这一点。我有兴趣!
  • 你能提供一些dput(head(df))的样本数据吗?

标签: r loops plot


【解决方案1】:

这是一个使用标准plotpoints 的示例以及ggplot2 示例。

df <- data.frame(x=1:10,
       y1=rnorm(10),
       y2=rnorm(10),
       y3=rnorm(10))
plot(df$x, df$y1)
# points(df$x, df$y2)
# points(df$x, df$y3)
for(i in 3:4) {
  points(df$x, df[[i]])
}


library(reshape2)
library(ggplot2)
melt_df <- melt(df, 'x')
ggplot(melt_df, aes(x, value)) +
  geom_point()

【讨论】:

    猜你喜欢
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多