在同一图表上绘制多行 - 同一页面上的几张图表

时间:2016-05-30 11:51:26

标签: r plot

这是我之前的question

的一些跟进

这次我想将我的图表导出为pdf,我希望在同一页面上有6张图表。为什么6,因为我有6个不同的数据集:

df1 <- data.frame(matrix(rnorm(50), 10, 15))
df2 <- data.frame(matrix(rnorm(30), 10, 15))
df3 <- data.frame(matrix(rnorm(20), 10, 5))
df4 <- data.frame(matrix(rnorm(70), 10, 5))
df5 <- data.frame(matrix(rnorm(110), 10, 10))
df6 <- data.frame(matrix(rnorm(70), 10, 10))

我更改了row.names,使示例数据与真实数据更相似:

row.names(df1) <- c("Mark", "Tere", "Marcus", "Heidi", "Georg", "Tieme", "Joan", "Tytus", "Julius", "Crater")
df1$id <- rownames(df1)

我用于绘图的代码(id)需要添加ggplot列。

现在,要达到目的。因此,当您看到所有数据集具有完全相同的row.names时,它们可能处于不同的顺序!指出我的经历可能更容易理解:

1。我想为每个数据集创建一个单独的图表,但所有数据集(总共6个)应该在同一页面上。

2. 每个图表都应该有3个图表(3行 - 查看我创建的上一个帖子)。

3。 HeidiJoan的绘图必须在所有图表上,并且还有一个(再次查看上一个帖子)。这意味着此数据中每个其他名称应该有一个页面。

4. 如果能用ggplot完成,我们将不胜感激。

只是为了让它更容易理解:

总共有6张图。每个图表包含HeidiJoan +任何其他图表(Marcus / Tieme / Georg / Julius / etc)。每个页面都有不同的名称。

这是我用来绘制每行和2个常量的代码:

pdf(file = sprintf("Df_plots.pdf", df1), paper='A4r')

lapply(1:length(df1$numb), function (i) {
  df1_melted.i <- df1_melted[df1_melted$numb %in% c(i, Heidi, Joan),]
  ggplot(data_plot2.i) +
    geom_line(aes(x = as.numeric(variable), y = value, colour = factor(id)))
})

dev.off()

这听起来很复杂,但对于有R经验的人来说,这应该是非常容易的任务。

编辑:

df1$numb <- 1:length(row.names(df1))
df1_melted <- melt(df1, id.vars = c("id", "numb))

编辑:

编辑了不同列数的数据。

Desired output

我希望这样的情节安排好。您必须使用该帐户的列数不同 - 更多值。

1 个答案:

答案 0 :(得分:3)

我试图让你的榜样更好一点。

decorator