我正在构建一个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行,而不是多行。
答案 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()
答案 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>