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

如何为直方图仅在设定阈值以上应用水平渐变填充?

解决方案

要实现阈值以下纯绿色、阈值以上从绿色渐变到红色的直方图填充,只需对填充映射做简单调整:将阈值以下的分箱中点值统一替换为阈值,这样它们会被映射为渐变的起始色(深绿色),而阈值以上的分箱则保留原始值以实现渐变效果。

修改后的完整代码:

library(ggplot2)

# 关注阈值
loc = 0.4

set.seed(1234)
mydata <- data.frame(a = rnorm(1000), b = rnorm(1000)/2)

ggplot(data = mydata, aes(x = a, fill = ifelse(..x.. <= loc, loc, ..x..))) + 
  geom_histogram() +
  scale_fill_gradient(low = "darkgreen", high = "red", name = "数值")

关键说明

  • ..x.. 代表直方图每个分箱的中点值,我们以此为依据设置填充色
  • ifelse(..x.. <= loc, loc, ..x..) 将所有阈值以下的分箱中点值替换为loc,确保这些分箱统一使用渐变的起始色(深绿色)
  • 阈值以上的分箱保留原始中点值,通过scale_fill_gradient实现从深绿色到红色的渐变,直观体现数值超出阈值的程度

内容的提问来源于stack exchange,提问作者user25342487

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 03:27:33