我最近从Rmisc
程序包中发现multiplot
函数,以使用ggplot2
绘图/对象生成堆积图。我现在想要做的是创建一个多槽的多槽。不幸的是,与ggplot
函数不同,multiplot
不生成对象,所以我的问题不能通过简单地嵌套multiplot
来解决。ggplot2中的多槽图的多重绘图
我会创建一个数据框来清楚我的观点。在我的数据框df
中,我有3列:period
,group
和value
。对于10个时期内的3个组中的每一组记录一定的值。 (注:由于焦点不在数值我不尽管使用了sample
功能的使用下面一个的种子数量,它是图形)
# Create a data frame for illustration purposes
df <- data.frame(period = rep(1:10, 3),
group = rep(LETTERS[1:3], each = 10),
value = sample(100, 30, replace = TRUE))
我然后四分之一列添加到df
,其是指数value
列的转换。
df$exp.value = exp(df$value)
我想创建堆积图,使我可以比较每个组中的值与他们的指数对应值。
# Split dataframe by group
df_split <- split(df, df$group)
# Plots of values in each group
plots <- lapply(df_split, function(i){
ggplot(data = i, aes(x = period, y = value)) + geom_line()
})
# Plots of logged values in each group
plots_exp <- lapply(df_split, function(i){
ggplot(data = i, aes(x = period, y = exp.value)) + geom_line()
})
plots
和plots_exp
各自3个元素含有ggplot
对象的两个列表。每个列表的第一个元素对应于A组,所述第二元素对应于B组和第三元素对应于C组
为了每个组的值与所述的指数值,我可以使用multiplot
功能。以下是与A组的例子:
multiplot(plots[[1]], plots_log[[1]], cols = 1)
如何创建的栅格,其中将包括上述的multiplot以及的那些用于组B和C?就好像代码包含... + facet_grid(. ~ group)
?
为什么不绘制3行2列6个地块?另请参阅[cowplot软件包](https://cran.r-project.org/web/packages/cowplot/vignettes/introduction.html)了解多时隙。 – zx8754