用ggplot绘图时如何隐藏某些因素?

问题描述

在此示例中,我不想显示carb中的因数6和8,但我仍想使用它们来计算比例。

ggplot(mtcars)+ aes(x = factor(cyl),fill = factor(carb)) +
    geom_bar(position = "fill")

enter image description here

使用ggplot知道我有多个要隐藏的因素是否有一种简单的方法? 谢谢

解决方法

在创建绘图之前如何计算比例?

mtcars %>%
    dplyr::count(cyl,carb) %>%
    dplyr::group_by(cyl) %>%
    dplyr::mutate(pct=n/sum(n)) %>%
    dplyr::filter(!carb %in% c(6,8)) %>%
    ggplot2::ggplot(ggplot2::aes(x=factor(cyl),y=pct,fill=factor(carb))) +
    ggplot2::geom_bar(stat="identity")
,
mtcars %>%
  count(cyl,carb) %>%
  group_by(cyl) %>%
  mutate(p = n / sum(n)) %>%
  filter(!carb %in% c(6,8)) %>%
  ggplot(aes(x = factor(cyl),y= p,fill = factor(carb))) +
    geom_col()