【问题标题】:Plotting multiple lines from a data frame in R从R中的数据框中绘制多条线
【发布时间】:2011-12-16 06:22:06
【问题描述】:

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

【问题讨论】:

  • 你能分享你的数据表(或一些有代表性的样本)吗?
  • 查看Frequently Unread Suggestion 了解如何创建可重现的示例。

标签: r graph plot


【解决方案1】:

看看 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()

【讨论】:

【解决方案2】:

或带底座:

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

【讨论】:

    【解决方案3】:

    您不需要加载任何 for 或 apply 包,只需使用 R 中内置的 matplot 函数...表格的每一列都将是图表中的一条线(如果您愿意,也可以是符号)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-16
      • 2021-12-10
      • 1970-01-01
      • 2014-06-18
      • 2016-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多