9

可能重复:
ggplot - 函数输出方面

ggplot2facets选项非常适合按因子显示多个图,但我在学习有效地将连续变量转换为其中的因子时遇到了困难。使用以下数据:

DF <- data.frame(WindDir=sample(0:180, 20, replace=T), 
                 WindSpeed=sample(1:40, 20, replace=T), 
                 Force=sample(1:40, 20, replace=T))
qplot(WindSpeed, Force, data=DF, facets=~cut(WindDir, seq(0,180,30)))

我得到错误:At least one layer must contain all variables used for facetting

我想Force~WindSpeed通过离散的 30 度间隔来检查关系,但似乎facet需要将因素附加到正在使用的数据框(显然我可以这样做DF$DiscreteWindDir <- cut(...),但这似乎没有必要)。有没有办法facets在将连续变量转换为因子时使用?

4

1 回答 1

7

举例说明如何使用transform进行内联转换:

qplot(WindSpeed, Force,
      data = transform(DF,
                       fct = cut(WindDir, seq(0,180,3))),
      facets=~fct)

您不会“污染” datafaceting 变量,但它在数据框中供 ggplot 进行刻面(而不是作为刻面规范中列的函数)。

这在扩展语法中同样有效:

ggplot(transform(DF,
                 fct = cut(WindDir, seq(0,180,3))),
       aes(WindSpeed, Force)) +
  geom_point() +
  facet_wrap(~fct)
于 2013-01-28T20:37:48.310 回答