You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 01:30:03