我正在尝试创建一个图,其中填充美学映射到有序因子,但该因子的某些级别不存在于数据中。缺失的因子水平通过 指定填充颜色scale_fill_manual()
,但这些填充颜色并不由我的图中的填充图例表示。
我希望drop = FALSE
在我的程序中scale_fill_manual()
显示该因子的每个级别及其填充颜色,但它保留了这些级别并将它们显示为缺少填充颜色。如何使图例反映我为比例指定的映射?
library(ggplot2)
factor_data <-
data.frame(
my_factor <-
factor("Level three",
levels = c("Level one", "Level two", "Level three", "Level four", "Level five"))
)
fill_colours <- colorRampPalette(c("green", "white"))(5)
fill_colours
#> [1] "#00FF00" "#3FFF3F" "#7FFF7F" "#BFFFBF" "#FFFFFF"
ggplot(factor_data) +
geom_bar(
aes(x = 1, fill = my_factor),
colour = "black", linewidth = 0.8) +
scale_fill_manual(name = "IMD Rank (England)",
values = fill_colours,
drop = FALSE) +
ggtitle("Deprivation of LLSOA")
创建于 2024-03-04,使用reprex v2.1.0
这是由于
ggplot2 3.5.0
现在需要另外设置show.legend=TRUE
以geom
显示缺失因子水平的变化。请参阅此 GH 问题。