【问题标题】:How to draw multiple Lines from csv in R如何在R中从csv中绘制多条线
【发布时间】:2012-06-08 20:11:21
【问题描述】:

我刚开始使用 R 并且想知道如何绘制一条线。 使用我的一个工具,我正在做生成 csv 文件的回归。格式如下:

X ,Y, Y1,Y2 

我喜欢从这个 csv 文件中画出三行,分别为 (x,y)、(x,y1) 和 (x,y2)。如何从 csv 文件执行此操作? 抱歉它的基本问题,但如果有人帮助我,我将不胜感激。

【问题讨论】:

  • 在重新阅读您的问题时,不清楚您是否对数据的绘图、将数据读入 R 或两者兼而有之。下面的两个答案侧重于绘制数据。对于将数据读入 R 的背景知识,有一整本专门针对此类事情的手册。该手册的相关部分是here

标签: r


【解决方案1】:

如果你想使用基础 R,我可能会使用 matplot:

#Fake data
x <- data.frame(x = 1:100, y1 = rnorm(100), y2 = runif(100))
#Plot
matplot(x[,1], x[, -1], type="l", lty = 1)
#Everyone needs a little legend love
legend("topright", legend = colnames(x)[-1], fill=seq_along(colnames(x)[-1]))

或者,我会使用 ggplot2

library(ggplot2)
library(reshape2)
#Melt into long format with first column as the id variable
x.m <- melt(x, id.vars = 1)
#Plot it
ggplot(x.m, aes(x, value, colour = variable)) +
  geom_line() +
  theme_bw()

该答案与this one 和其他几个在您查看该问题时弹出的相关问题非常相似。

【讨论】:

  • 非常感谢您的解决方案。第一个正在工作,但 ggplot2 出现错误。我认为我的 R 包没有 ggplot2。
  • @CrazyC install.packages(ggplot2)
【解决方案2】:
yourData <- read.csv("yourCSV.csv")
with(yourData, plot(X, Y, type = "l"))
with(yourData, lines(X, Y1))
with(yourData, lines(X, Y2))

另见?abline。

【讨论】:

  • 使用上面的代码,每个都是擦除图形然后画线,而我喜欢同时看到所有线。
  • @CrazyC 很奇怪,这不会发生在我身上。 plot 默认启动一个新窗口,但 lines 添加到当前绘图。您可以使用xlim 和ylim 参数调整初始绘图调用的范围;确保您获得全部数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-16
  • 1970-01-01
  • 1970-01-01
  • 2019-09-04
  • 1970-01-01
相关资源
最近更新 更多