有grid.arrange的多个图

时间:2014-06-01 19:19:35

标签: r ggplot2 gridextra

我的数据集是一个data.frame NewAuto,其名称为:

[1] "mpg"          "cylinders"    "displacement" "horsepower"   "weight"      
[6] "acceleration" "year"         "origin"       "name"         "MPG01"

我想用ggplot在一张照片上制作七个情节。它是更大代码的一部分。我的目标是制作类似的情节mpg与其他列。每个图应标有y轴。

SCATTERplots <- lapply(
2:8, 
function( column ){
  DataPlot <- ggplot(
    data = NewAuto,
    aes(
      x = mpg,
      y=NewAuto[,column]
    )
  )+geom_point()+facet_grid(.~MPG01)+ylab(names(NewAuto)[column])
  return( DataPlot)  
}
)
do.call( grid.arrange, SCATTERplots) 

不幸的是我得到了:

Error in `[.data.frame`(NewAuto, , column) : object 'column' not found

我该如何解决这个问题?

我是初学者,所以请考虑到这一点。

1 个答案:

答案 0 :(得分:1)

您无法在aes中使用变量名称。您只能使用数据对象中的文字值或元素名称。您应该使用aes_string代替:

aes_string(
  x = "mpg",
  y="column"
)

你失败的原因是因为“NewAuto [,column]”它不是NewAuto中的一列。