用 R 从数据框绘制多条线

7

我正在构建一个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条线,而不是多条线。

2
你能分享一下你的数据表格(或者一些代表性样本)吗? - David Alber
4
请查看这个常见但容易被忽略的建议,了解如何创建可重现的示例。 - Nick Sabbe
3个回答

19

建议查看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()

输入图像描述


请查看http://had.co.nz/ggplot2/,您将找到许多图形示例及其相应的代码。 - Thierry

11

或使用基础值:

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")

4

您不需要加载任何for或apply包,只需简单地使用R中内置的matplot函数即可... 表的每一列都将成为您图形的一条线(或符号,如果您喜欢)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接