gpt4 book ai didi

r - 如何为子弹图添加自定义图例

转载 作者:行者123 更新时间:2023-12-04 17:12:28 24 4
gpt4 key购买 nike

我有以下数据集:

incidents.pct <- data.frame(
measure=c("Total Events (%)", "Security Events (%)", "Filtered (%)", "Tickets (%)"),
high=c(100,100,100,100),
mean=c(45,40,50,30),
low=c(25,20,10,5),
target=c(55,40,45,35),
value=c(50,45,60,25))

我用它来创建以下“子弹状”图表。

g <- ggplot(incidents.pct) +
geom_bar(aes(measure, high), fill="goldenrod2", stat="identity", width=0.5, alpha=0.2) +
geom_bar(aes(measure, mean), fill="goldenrod3", stat="identity", width=0.5, alpha=0.2) +
geom_bar(aes(measure, low), fill="goldenrod4", stat="identity", width=0.5, alpha=0.2) +
geom_point(aes(measure, target), colour="red", size=2.5)

这可行,但我想包含一个解释颜色的自定义图例。所以只是一个带有 fe“低”、“中”、“值”等的颜色标志...

关于如何包含这个有什么建议吗?

最佳答案

在 ggplot 中,如果美学选项位于 aes() 内,则会自动生成图例。因此,以下使用 scale_fill_manual() 的解决方法将为您提供图例:

ggplot(incidents.pct) +
geom_col(aes(measure, high, fill = "high"), width=0.5, alpha=0.2) +
geom_col(aes(measure, mean, fill = "mean"), width=0.5, alpha=0.2) +
geom_col(aes(measure, low, fill = "low"), width=0.5, alpha=0.2) +
geom_point(aes(measure, target), colour="red", size=2.5) +
scale_fill_manual(name = "Legend",
values = c("high" = "goldenrod2",
"mean" = "goldenrod3",
"low" = "goldenrod4"),
breaks = c("high", "mean", "low"))

(顺便说一句,geom_col() 等同于 geom_bar(stat = "identity"),而且看起来更整洁。

plot

但是,我会警告不要将低 alpha 值与重叠条一起使用,因为图例的颜色与绘图的颜色不完全匹配。选择三个较浅的阴影并将 alpha 保留为 1 会更干净。

关于r - 如何为子弹图添加自定义图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48020055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com