ggplot中facet_grid提示'color'未找到,但facet_wrap可正常使用的原因?
问题原因及解决办法
这个错误的核心是**facet_grid()的参数语法用错了**。
facet_wrap()可以直接用~变量名的形式指定分面变量,它会自动从绑定的数据框里读取对应列;但facet_grid()的rows和cols参数必须传入公式形式(带~),不能直接写变量名。- 你写的
rows=color会让R去全局环境找名为color的对象,而不是从diamonds数据框里取列,所以才会报“object 'color' not found”的错。
修正后的代码
第一种写法(明确指定行列):
diamonds |> ggplot(aes(x=price, y=z)) + geom_point() + facet_grid(rows=~color, cols=~cut)
第二种更简洁的合并写法:
diamonds |> ggplot(aes(x=price, y=z)) + geom_point() + facet_grid(color ~ cut)
内容的提问来源于stack exchange,提问作者guy_merchie
相关产品推荐
相关产品推荐

