Пользовательский категориальный порог оси разрыва по непрерывной шкале в R - PullRequest
0 голосов
/ 07 мая 2018

Учитывая следующий сюжет:

library(ggplot2)
ggplot(mtcars, aes(mpg, wt)) +
  geom_point(aes(colour = factor(cyl))) +
  scale_y_continuous(name = "Weight", breaks = c(2, 3, 4, 5))

Кто-нибудь знает способ заменить значение, например, 5 с категориальным разрывом, таким как «Выше 5», с тремя наблюдениями, появляющимися на этой созданной линии разрыва? Я ищу способ включить выбросы в график, не искажая его, но все же смогу показать информацию, относящуюся к ним (в данном случае их значениям mpg), вместо того, чтобы полностью исключить их.

Следующий код:

library(ggplot2)
ggplot(mtcars, aes(mpg, wt)) +
  geom_point(aes(colour = factor(cyl))) +
  scale_y_continuous(name = "Weight", breaks = c(2, 3, 4, >5), labels = c(2, 3, 4, "Above 5")))

Не работает из-за символа ">" в перерывах. Какие-либо предложения? Благодарю.

1 Ответ

0 голосов
/ 07 мая 2018

Я обнаружил, что простая процедура манипулирования данными перед построением графика дает то, что я хочу.

library(dplyr)
mtcars <- mtcars %>%  mutate(wt2 = case_when(wt < 5  ~ wt,
                              wt > 5 ~ 5))

Приведенный выше код присваивает значение 5 любому значению mpg выше 5, так что они появляются в одной и той же строке разрыва. Затем я могу построить график, и наложение в точках может быть показано с изменением альфа-значения.

  library(ggplot2)
ggplot(mtcars, aes(mpg, wt2)) +
  geom_point(aes(colour = factor(cyl), alpha = 0.2, size = 2)) +
  scale_y_continuous(name = "Weight", breaks = c(2, 3, 4, 5), labels = c(2, 3, 4, "Above 5"))

Спасибо за ваши комментарии.

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