[英]ggplot add variable to legend without including in plot (when using alpha)
我想在圖例中添加一個變量而不將其包含在圖中。
我認為當我不使用alpha
時不會出現問題(請參閱: 如何將變量添加到圖例而不將其包含在圖表中? )
library(tidyverse)
name_color <- c('black', "blue", "orange", "pink")
names(name_color) <- letters[1:4]
tibble(name = rep(letters[1:4], each = 2),
respond = rep(c("yes", "no"), 4),
n = rep(50, 8),
me = "i") %>%
filter(name != "c") %>%
ggplot(aes(me, n, fill = name, alpha = respond)) +
facet_wrap(~name) +
geom_bar(stat = "identity") +
scale_fill_manual(values = name_color, drop = FALSE)
這個問題與alpha
無關。 問題是您的數據的類別。 當您使用tibble
創建數據時, name
列的類為character
。 您需要一個factor
類來“記住”未使用的級別:
name_color <- c('black', "blue", "orange", "pink")
names(name_color) <- letters[1:4]
d = tibble(name = rep(letters[1:4], each = 2),
respond = rep(c("yes", "no"), 4),
n = rep(50, 8),
me = "i") %>%
class(d$name)
# [1] "character"
d %>% mutate(name = factor(name)) %>%
filter(name != "c") %>%
ggplot(aes(me, n, fill = name, alpha = respond)) +
facet_wrap(~name) +
geom_bar(stat = "identity") +
scale_fill_manual(values = name_color, drop = FALSE)
在您鏈接的原始問題中,您明確進行了因子轉換,這就是它起作用的原因。
... %>% mutate(
gear = factor(gear),
vs = factor(vs)
) %>% ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.