【发布时间】:2018-12-12 08:34:54
【问题描述】:
考虑这段代码:
require(ggplot2)
ggplot(data = mtcars) +
geom_point(aes(x = drat, y = wt)) +
geom_hline(yintercept = 3) +
facet_grid(~ cyl) ## works
ggplot(data = mtcars) +
geom_point(aes(x = drat, y = wt)) +
geom_hline(yintercept = 3) +
facet_grid(~ factor(cyl)) ## does not work
# Error in factor(cyl) : object 'cyl' not found
# removing geom_hline: works again.
Google帮我找到了一个debug,即将intercept包装成aes
ggplot(data = mtcars) +
geom_point(aes(x = drat, y = wt)) +
geom_hline(aes(yintercept = 3)) +
facet_grid(~ factor(cyl)) # works
# R version 3.4.3 (2017-11-30)
# ggplot2_2.2.1
Hadley writes here 作为变量的函数需要在每一层中。 (这对我来说听起来很神秘)
为什么在分解构面变量时会发生这种情况?
【问题讨论】:
-
从您提供的链接看来,这是一个已知的限制。至少有一个解决方法。
-
@MHammer 感谢您的考虑-但是,它没有回答我的问题,为什么仅在分解时才会发生这种情况。你有什么想法
标签: r ggplot2 facet geom-hline