从R中的数据帧绘制多条线

时间:2011-10-27 05:57:21

标签: r graph plot

我正在构建一个R函数来绘制数据表中的几行,我不明白为什么这不起作用?

data = read.table(path, header=TRUE);
plot(data$noop);
lines(data$noop, col="blue");
lines(data$plus, col="green");

我正在从我拥有的文件中读取数据,格式如下:

 noop         plus         mins
 33.3         33.3         33.3
 30.0         40.0         30.0
 25.0         50.0         25.0

这是数据集的最小表示形式,其中包含更多标题和更多数据点。因此,该数据集的每一行都反映了在给定时间采集的样本。所以我的目标是从文件中读取这些数据,然后将每列绘制为由不同颜色的线连接的一系列点。

我目前使用的方法只是绘制1行,而不是多行。

3 个答案:

答案 0 :(得分:17)

看看ggplot2包

library(ggplot2)
library(reshape)
data <- data.frame(time = seq(0, 23), noob = rnorm(24), plus = runif(24), extra = rpois(24, lambda = 1))
Molten <- melt(data, id.vars = "time")
ggplot(Molten, aes(x = time, y = value, colour = variable)) + geom_line()

enter image description here

答案 1 :(得分:9)

或者用base:

data <- data.frame(time = seq(0, 23), noob = rnorm(24), plus = runif(24), extra = rpois(24, lambda = 1))
plot(extra ~ time, 
  data = data, 
  type = "l", 
  ylim = c(min(data[ ,-1]), max(data[ ,-1])),
  ylab = "value")
lines(data$time, data$plus, col = "steelblue")
lines(data$time, data$noob, col = "pink")

答案 2 :(得分:4)

您不需要加载任何for或apply的包,只需使用R中内置的matplot函数...表格的每一列都是图表中的一行(如果您愿意,则为符号)。< / p>