使用facet_wrap时遇到问题

时间:2018-09-27 16:03:07

标签: r ggplot2

我是新手,所以这可能是超级基础。 当我运行这段代码

Dplot <- qplot(x = diamonds$carat, y = diamonds$price, color = diamonds$color) +
  ggtitle("An A+ plot") +
  xlab("carat") +
  ylab("price") +
  geom_point()

Dplot <- Dplot + facet_wrap(vars(diamonds$clarity))
Dplot

我收到一条错误消息,内容为:

  

gList(list(x = 0.5,y = 0.5,width = 1,height = 1,just =       “中央”, :       在“ gList”中仅允许使用“ grobs”

我已尝试使用Google谷歌搜索功能,但无法找出问题所在。

1 个答案:

答案 0 :(得分:3)

除最基本的情况外,我建议不要使用qplot。它会教bad $中应避免的不良习惯(例如使用ggplot)。

我们可以通过以下方式进行切换:将数据帧diamonds传递到ggplot(),然后将映射只放在列名而不是aes()的{​​{1}}内。只要我们也省略了diamonds$,那么facet_wrap就可以正常工作:

diamonds$

请注意,代码实际上较短,因为我们不需要一直输入Dplot = ggplot(diamonds, aes(x = carat, y = price, color = color)) + ggtitle("An A+ plot") + xlab("carat") + ylab("price") + geom_point() Dplot + facet_wrap(vars(clarity)) Dplot + facet_wrap(~ clarity) # another option

diamonds$选项可以正常工作,更传统的是,您会看到公式界面使用了vars(clarity)~ clarity选项是新颖的,如果要编写一个函数,将要作为小平面使用的列的名称存储在变量中,则该选项会更好一些。