不要用ggplot2绘制一些计数

时间:2018-05-29 13:52:23

标签: r ggplot2 forcats

作为可重复的示例,请使用

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 :(得分:3)

使用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)