代码给出错误: ggplot(mtcars, aes(wt, mpg)) + geom_point(aes(shape = 1, size = 4))
代码不给出错误: ggplot(mtcars, aes(wt, mpg)) + geom_point(shape = 1, size = 4)
代码给出错误: ggplot(mtcars, aes(wt, mpg)) + geom_point(aes(shape = 1, size = 4))
代码不给出错误: ggplot(mtcars, aes(wt, mpg)) + geom_point(shape = 1, size = 4)
这不是时间问题。这是默认行为的问题。
实际的错误信息是
Error: A continuous variable can not be mapped to shape
所以在第一个例子中,因为shape
在调用内部aes()
,它定义了一个比例。 1
不是常数,而是连续变量。
在第二个示例中,因为 shape在对 的调用之外aes()
,所以它没有定义比例,因此不会发生错误。
不产生错误的第一个示例的变体是
gplot(mtcars, aes(wt, mpg)) + geom_point(aes(shape = as.factor(1), size = 4))
因为调用as.factor()
意味着1
不再被视为连续的。