Open hope-data-science opened 1 day ago
scale_fill_manual()与 scale_colour_manual() 可以合并,比如
scale_colour_manual(
aesthetics = c("colour", "fill")
)
其次,多个geom_segment()也可以用purr::map()简化
可以给一个优化过的版本吗,我一看这个这么多重复,就知道应该有优化空间,但是还没有仔细思量。
df %>%
ggplot(aes(x = x, y = y, fill = x)) +
geom_col(show.legend = FALSE) +
geom_tile(aes(x = as.numeric(factor(x)) - 0.2, y = y, fill = x, colour = x), width = 0.2, height = 0.2, show.legend = FALSE) +
geom_tile(aes(x = as.numeric(factor(x)) + 0.2, y = y, fill = x, colour = x), width = 0.2, height = 0.2, show.legend = FALSE) +
scale_fill_manual(
values = c(
"a" = "darkgreen",
"b" = "gray",
"c" = "lightcoral",
"d" = "khaki",
"e" = "cornflowerblue",
"f" = "lightgreen",
"g" = "chocolate1"
),
aesthetics = c("colour", "fill")
) +
map(
1:5,
~ geom_segment(
data = filter(df, y > .x),
aes(
x = as.numeric(factor(x)) - 0.45,
y = .x,
xend = as.numeric(factor(x)) + 0.45,
yend = .x
),
color = "black",
size = 0.8
)
) +
theme_void()
学生作品,供参考: