library("dplyr")
library("ggplot2")
让我们从这个简单的图开始:
faithful %>%
ggplot(aes(waiting, eruptions, color = eruptions > 3)) +
geom_point()
现在,让我们在类变量中引入一些缺失值:
faithful_with_missings <-
faithful %>%
mutate(eruptions_class = ifelse(eruptions > 3, '>3', '<=3'),
eruptions_class = ifelse(rbinom(n(), 1, 0.9), eruptions_class, NA_character_))
##eruptions_class = as.factor(eruptions_class))
faithful_with_missings$eruptions_class %>% table(exclude = NULL)
#> .
#> <=3 >3 <NA>
#> 89 151 32
使用缺失项重做打印:
ggplot(faithful_with_missings, aes(waiting, eruptions, color = eruptions_class)) +
geom_point()
我的问题是:有没有一种方法可以绘制NA点,但在图例中省略NA?
我想要的输出是:
3条答案
按热度按时间z2acfund1#
您可以通过scale的
breaks
参数设置类别以显示在图例中。因此,要删除NA,您可以使用scale_color_discrete
中的lambda函数来删除NA:3hvapo4f2#
另一个使用
scale_color_manual
的选项是知道NA颜色是grey50
,并像这样指定breaks
:创建于2023-03-25带有reprex v2.0.2
如果你想使用ggplot的标准颜色,你可以使用
scales
包中的hue_pal
函数来获得两种颜色,如下所示:创建于2023-03-25带有reprex v2.0.2
gwo2fgha3#
下面是调整
scale_color_manual
和theme
的另一种方法: