ggplot2设置因子水平不可见 旧scale_color_manual设NA方案失效如何解决
解决方案
新版本ggplot2会将scale中指定为NA的颜色统一替换为默认灰色占位色,因此旧方案失效。你可以通过调整scale_color_manual的两个参数实现需求,完全不需要占用alpha映射通道:
- 将需要隐藏的因子水平对应的颜色设置为
"transparent",实现边框完全不可见 - 通过
breaks参数指定仅在图例中保留需要展示的因子水平,自动过滤不需要的项
修改后的可运行代码如下:
library(tidyverse) df_test <- tibble(y = c(100, -50, 20), group = c("A", "B", "C"), Marker = c("above average", " ", "below average")) ggplot(data = df_test, mapping = aes(x = group, y = y, color = Marker)) + geom_bar(stat = "identity", position = position_dodge(width = 0.9), size = 1.5, fill = "yellow") + scale_color_manual( values = c("above average" = "green3", "below average" = "red", " " = "transparent"), breaks = c("above average", "below average") )
内容的提问来源于stack exchange,提问作者Paul Eagle
相关产品推荐
相关产品推荐

