Я делаю некоторый анализ в ggplot2 на данный момент для проекта, и случайно я наткнулся на какое-то (для меня) странное поведение, которое я не могу объяснить. Когда я пишу aes(x = cyl,...)
график выглядит по-другому, чем он делает, если я aes(x = mtcars$cyl,...)
одну и ту же переменную с помощью aes(x = mtcars$cyl,...)
. Когда я facet_grid(am ~.)
Оба графика снова 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")
Вот изображение графика 1:
Вот изображение графика 2:
Я обнаружил, что могу обойти эту проблему, используя aes_string
вместо aes
и передавая имена переменных в виде строк, но я хотел бы понять, почему ggplot ведет себя таким образом. Проблема также возникает при аналогичных попытках с facet_wrap
.
спасибо много за любую помощь заранее! Мне очень неудобно, если я не понимаю, что правильно...