从列表中的数据帧名称向ggplots列表添加标题名称

时间:2016-03-10 11:16:34

标签: r ggplot2

我正在从数据框列表中生成一个箱图列表,如下所示:

Bps<-lapply(dflist, function(x){
  gg<-ggplot(x, aes(x= x, y= y, fill= x))+
   geom_boxplot(position  = "dodge")+
    ggtitle(names(x))    
 })

数据框列表可以通过以下方式生成:

 df1<-data.frame(x=seq(1:50), y=rep("Blank", "Non_blank",25))
 df2<-data.frame(x=seq(1:40), y=rep("Blank", "Non_blank",20))
 df3<-data.frame(x=seq(1:30), y=rep("Blank", "Non_blank",15))

dflist<-list(df1,df2,df3

我需要粘贴原始数据帧的名称作为每个boxplot的标题。因此,如果dflist有3个名为dfA,dfB和dfC的数据帧,这些数据帧应该是由lapply函数制作的每个boxplot的标题。我似乎只能获取列的名称而不是原始数据帧名称。 非常感谢, 中号

1 个答案:

答案 0 :(得分:4)

由于这是一个连续问题,我们不需要分配结果,我们可以使用for loop

names(dflist) <- c("dfA", "dfB", "dfC") # Define names of df's

for (i in seq(dflist)) {
  gg <- ggplot(dflist[[i]], aes(x = x, y = y, fill = x))+
    geom_boxplot(position  = "dodge") +
    ggtitle(names(dflist[i]))
  print(gg)
}