Не делайте некоторые подсчеты с помощью ggplot2 - PullRequest
0 голосов
/ 29 мая 2018

В качестве воспроизводимого примера используйте

library(tidyverse)
iris_count <- count(iris, Species)

iris_count %>%
  mutate(Species2 = ifelse(Species == "setosa", NA, as.character(Species))) %>%
  ggplot(aes(reorder(Species2, -n), n)) +
  geom_col(na.rm = TRUE)

Я хочу удалить NA из графика, но опция na.rm = TRUE, похоже, не выполняет то, что я хочу в этом случае.

1 Ответ

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

Используйте scale_x_discrete и аргумент na.translate = FALSE.Из документации scale_x_discrete:

na.translate В отличие от непрерывных шкал, дискретные шкалы могут легко отображать пропущенные значения и делают это по умолчанию.Если вы хотите удалить пропущенные значения из дискретной шкалы, укажите na.translate = FALSE.

library(ggplot2)
library(dplyr)
iris_count <- count(iris, Species)

iris_count %>%
  mutate(Species2 = ifelse(Species == "setosa", NA, as.character(Species))) %>%
  ggplot(aes(reorder(Species2, -n), n)) +
  geom_col() + 
  scale_x_discrete(na.translate = FALSE)
...