如何为ggplot箱线图设置不同填充颜色?附现有R代码
给不同分组的箱线图设置自定义填充色
没问题,要实现给三个inst分组的箱线图设置不同填充色,只需要调整ggplot的颜色映射逻辑就行,下面是修改后的完整代码和说明:
修改后的完整代码
# 计算前后差值 Teeth <- caries$after - caries$before # 双因素方差分析 anova <- aov(Teeth~inst * treat, data=caries) summary(anova) # 带自定义填充色的箱线图 ggplot(data = caries, aes(x=inst, y=Teeth, group=inst, fill=inst)) + geom_boxplot(colour = "black") + # 手动指定三个分组的填充色,可自行替换 scale_fill_manual(values = c("coral", "dodgerblue", "seagreen"))
关键修改点说明
- 把
fill=inst移入aes()函数中:这样ggplot会识别inst是分组变量,自动为每个不同的inst水平分配独立的填充色 - 使用
scale_fill_manual()自定义颜色:你可以把values里的颜色换成任何你喜欢的颜色名称或十六进制颜色码(比如"#FF5733"),顺序要和inst的水平顺序对应 - 可选:如果不想手动指定颜色,也可以用内置调色板,比如替换成
scale_fill_brewer(palette = "Set2")或者scale_fill_viridis_d(),快速生成美观的配色
如果你的inst变量还不是因子类型,先执行caries$inst <- factor(caries$inst)转换一下,确保每个分组都能正确匹配颜色。
内容的提问来源于stack exchange,提问作者Kristen Felohz
相关产品推荐
相关产品推荐

