这是我之前的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。 Heidi
和Joan
的绘图必须在所有图表上,并且还有一个(再次查看上一个帖子)。这意味着此数据中每个其他名称应该有一个页面。
4. 如果能用ggplot
完成,我们将不胜感激。
只是为了让它更容易理解:
总共有6张图。每个图表包含Heidi
,Joan
+任何其他图表(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))
编辑:
编辑了不同列数的数据。
我希望这样的情节安排好。您必须使用该帐户的列数不同 - 更多值。
答案 0 :(得分:3)
我试图让你的榜样更好一点。
decorator