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

R语言绘制直方图如何按X<980条件设置柱形填充色

R语言直方图按条件设置柱形填充色实现方法

当然可以实现。你当前代码没出预期效果的原因很简单:直接给plot()传一维数值向量,默认画的是「元素索引为x轴、数值为y轴」的点序列图,根本不是直方图,所以ifelse是给每个单独的点上色,自然做不到柱形按区间统一填色。

基础R实现代码

先调用hist()计算直方图的柱形区间结构(不直接绘图),判断每个柱是否满足X<980的条件再分配颜色,最后绘图即可:

# 生成测试数据
Sample <- rnorm(2500,1000,20) # 2500 norm values
# 先计算直方图的区间、频数信息,暂不输出图形
h <- hist(Sample, plot = FALSE)
# 给柱形匹配颜色:柱形右边界小于980填红色,其余填绿色
# 要按柱中点判断就把条件换成 h$mids < 980,按左边界判断就用 h$breaks[-length(h$breaks)] <980
col_set <- ifelse(h$breaks[-1] < 980, 'red', 'green')
# 绘制最终带条件填色的直方图
plot(h, col = col_set, xlab = "Sample值", main = "条件填色直方图")

你之前写的代码跑出来的是点序列图,效果如下:
运行效果示意图

补充说明

如果刚好有柱形跨在980这个临界值上,你可以按需调整判断规则:比如柱形50%以上的区间在980以下就标红,或者给跨临界值的柱单独设置第三种填充色,逻辑和上面的写法一致,调整判断条件就行。


内容的提问来源于stack exchange,提问作者José Miguel Álvarez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 18:06:26