我使用ggplot2包创建了一个刻面的boxplot。 R代码如下:
version.labs <- c(`1`="Version 1.0", `2`="Version 2.0", `3`="Version 3.0", `4`="Version 4.0", `5`="Version 5.0")
ggplot(df, aes(x=factor(Subsystem), y=Risk.value, fill=factor(Version)) ) +
geom_jitter(position=position_jitter(width=0.3, height=0.2), aes(colour=factor(Version)), alpha=0.9) +
geom_boxplot(alpha = 0.5, show.legend = FALSE) + facet_grid(.~Version, labeller = as_labeller(version.labs)) +
theme(strip.text.x = element_text(size=9, color="black", face="bold"))
结果情节看起来非常好(如下所示)代表传奇。
在图例中,我想更改每个项目的标题和文本标签。标题应为“版本”,标签为“版本1.0”,......,“版本5.0”。
我尝试了各种各样的方法,但他们都添加了一个新的单独的传奇。新的传奇看起来不错,但旧版本仍然存在,看起来不太好,我找不到删除它的方法。
我尝试的最后一件事是添加scale_color_manual()函数,如下所示:
scale_color_manual(name = "Version", labels=c("v1.0","v2.0","v3.0","v4.0","v5.0"), values=c("grey","blue","green","red","black"))
这会产生一个如下所示的箱线图。
可以看出有两个传说。所以,关闭但没有雪茄。任何关于如何解决这个问题的提示都表示赞赏。
答案 0 :(得分:1)
我弄明白了这个问题。我将我的aestetic fill函数aes()
放在一般ggplot()
中。这应该放在geom_boxplot()
中,否则通用ggplot()
和geom_boxplot()
都会添加图例。所以我修复了这个问题,然后我使用guides()
来更新geom_boxplot()
图例中的标题。完整代码如下所示:
ggplot(df, aes(x=factor(Subsystem), y=Risk.value) ) +
geom_jitter(position=position_jitter(width=0.3, height=0.2), aes(colour=factor(Version)), alpha=0.9) +
geom_boxplot(alpha = 0.5, show.legend = FALSE, aes(fill=factor(Version))) + facet_grid(.~Version, labeller = as_labeller(version.labs)) +
theme(strip.text.x = element_text(size=9, color="black", face="bold")) +
labs(x="Risk distribution per software version and subsystem type", y="Normalized risk value") +
guides(color=guide_legend("Version"))
最终的情节看起来像这样,我很高兴。
答案 1 :(得分:-1)
您正在使用fill
参数进行分组和生成图例。您可以使用scale_color_manual
覆盖现有图例
scale_fill_manual