ggplot для одной зависимой переменной и нескольких независимых - PullRequest
1 голос
/ 17 марта 2020

Можно ли создать несколько ggplots, используя facet_wrap, если y varaible всегда одинаково и просто меняется x переменная:

Допустим, у нас есть:

library(ggplot2)
library(dplyr)

colnames(mtcars)

mtcars %>% 
  ggplot(aes(hp, mpg)) + 
  geom_point() + 
  geom_smooth(method = "lm")


mtcars %>% 
  ggplot(aes(hp, cyl)) + 
  geom_point() + 
  geom_smooth(method = "lm")

mtcars %>% 
  ggplot(aes(hp, disp)) + 
  geom_point() + 
  geom_smooth(method = "lm")

mtcars %>% 
  ggplot(aes(hp, drat)) + 
  geom_point() + 
  geom_smooth(method = "lm")

.
.
.
mtcars %>% 
  ggplot(aes(hp, carb)) + 
  geom_point() + 
  geom_smooth(method = "lm")

Я знаю, что графики выше можно создать вручную, а затем использовать комбинированную сетку, но есть ли более эффективный способ?

1 Ответ

2 голосов
/ 17 марта 2020

С небольшим увеличением данных мы можем. Сначала мы создаем «id», используя row_number, а затем используем функцию gather для go из широкого набора данных в высокий набор данных. Мы отменили выбор столбцов id и hp.

mtcars %>%
    mutate(id = row_number()) %>%
    gather(variable, value, -id, -hp) %>%
    ggplot(aes(hp, value))+
    geom_point()+
    geom_smooth(method = "lm")+
    facet_wrap(~variable, scales = "free_y")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...