R语言ggplot2用facet_grid时修改直方图颜色及文本标注位置
实现方案
1. 自定义分面直方图填充色
在geom_histogram的美学映射中新增fill参数绑定分面字段general_status,再通过scale_fill_manual指定两个分类对应的填充色即可,你原本已经配置了关闭图例,不需要额外调整图例显示。
2. 调整垂直参考线文本标注位置
geom_text的vjust参数控制文本的垂直对齐偏移,数值大于1时文本会向y轴负方向(下方)偏移,你可以根据自己的显示需求调整数值大小(通常1~2.5范围内就能获得合适的显示效果)。
修改后的完整代码如下:
df %>% ggplot(aes(x = `Banks/turnover%Last avail. yr`)) + geom_histogram( aes(fill = general_status), bins = nclass.Sturges(`Banks/turnover%Last avail. yr`), colour = "black" )+ scale_fill_manual(values = c("Active" = "green", "Failed" = "red")) + geom_vline(data = status_means, aes(xintercept = avg), color="red", linetype="dashed")+ geom_text(data = status_means , aes(x = avg, label = avg), y= Inf, vjust = 1.5 )+ theme(legend.position="None")+ facet_grid(~general_status)
如果希望垂直参考线的颜色也和对应分面的直方图配色匹配,可以同步修改geom_vline的配置,示例如下:
# 仅列出修改的部分,其余代码保持不变 geom_vline(data = status_means, aes(xintercept = avg, color = general_status), linetype="dashed")+ scale_color_manual(values = c("Active" = "darkgreen", "Failed" = "darkred")) +
内容的提问来源于stack exchange,提问作者user15874067
相关产品推荐
相关产品推荐

