Как стандартизировать отметки при использовании facet_wrap - PullRequest
2 голосов
/ 25 мая 2019

Используя набор данных Carseats из ISLR, я хочу построить все остальные переменные относительно «Продажи» на одном графике. Для этого я использовал тидир, который до сих пор хорошо работал, за исключением того, что ось х не читается на графике, потому что слишком много отметок. Есть ли способ стандартизировать количество отметок на каждом графике или разделить их так, чтобы они были удобочитаемыми?

library(ISLR)
library(tidyr)
library(ggplot2)

Carseats %>%
  gather(-Sales, key="var", value="value") %>%
  ggplot(aes(x=value, y=Sales)) +
  geom_point() +
  facet_wrap(~var, scales="free_x") +
  theme_bw()

Я просто хочу, чтобы ось х была читаемой.

1 Ответ

1 голос
/ 25 мая 2019

Параметры фасета ggplot были разработаны с целью показать различные поднаборы одного набора данных с общим отображением по фасетам. Таким образом, ваш запрос является полезной задачей EDA, но не совсем то, что ggplot был разработан для удобства. Сложность заключается в том, что не только оси X находятся в разных диапазонах между фасетами (без проблем), но и оси X представляют собой смесь категориальных и непрерывных переменных (eep!).

Я бы предложил создать два графика, один с категориальными осями X, такими как ShelveLoc, Urban и US, и отдельный для непрерывных осей X. Затем вы можете использовать cowplot или patchwork, чтобы объединить их в один сюжетный объект, если это необходимо.

Графики с непрерывными осями X:

Carseats %>%
  select(-c("ShelveLoc", "Urban", "US")) %>%
  gather(-Sales, key="var", value="value") %>%
  ggplot(aes(x=value, y=Sales)) +
  geom_point() +
  facet_wrap(~var, scales="free_x", shrink = T) +
  theme_bw()

enter image description here

Графики с категориальными осями X:

Carseats %>%
  select(c("Sales", "ShelveLoc", "Urban", "US")) %>%
  gather(-Sales, key="var", value="value") %>%
  ggplot(aes(x=value, y=Sales)) +
  geom_point() +
  facet_wrap(~var, scales="free_x", shrink = T) +
  theme_bw()

enter image description here

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