相关疑难解决方法(0)

使用美元符号表示法($)将变量与facet_grid()或facet_wrap()一起传递给aes()时出现问题

我正在ggplot2做一些项目的分析,偶然我偶然发现一些(对我来说)奇怪的行为,我无法解释.当我写aes(x = cyl, ...)这个情节时,如果我使用相同的变量,它看起来会有什么不同aes(x = mtcars$cyl, ...).当我删除facet_grid(am ~ .)两个图表时再次相同.下面的代码是在我的项目中生成相同行为的代码之后建模的:

library(dplyr)
library(ggplot2)

data = mtcars

test.data = data %>%
  select(-hp)


ggplot(test.data, aes(x = test.data$cyl, y = mpg)) +
  geom_point() + 
  facet_grid(am ~ .) +
  labs(title="graph 1 - dollar sign notation")

ggplot(test.data, aes(x = cyl, y = mpg)) +
  geom_point()+ 
  facet_grid(am ~ .) +
  labs(title="graph 2 - no dollar sign notation")
Run Code Online (Sandbox Code Playgroud)

这是图1的图片:

图1  - 美元符号表示法

这是图2的图片:

图2  - 没有美元符号表示法

我发现我可以使用aes_string而不是aes将变量名称作为字符串传递来解决这个问题,但我想理解为什么ggplot表现得那样.在类似的尝试中也会出现问题facet_wrap.

对于任何提前帮助都很有帮助!如果我不理解,我会感到非常不舒服......

r ggplot2 r-faq

14
推荐指数
1
解决办法
1818
查看次数

标签 统计

ggplot2 ×1

r ×1

r-faq ×1