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

如何在折线图中为单一数据集添加带分段填充颜色的区域

实现带区域分段填充的折线图(单一数据集)

嘿,我来帮你搞定这个带分段填充颜色的折线图!用Python的Matplotlib库就能轻松实现,我给你整个完整的示例,一步一步讲清楚~

核心思路

我们的目标是基于单一数据集,把折线与阈值之间的区域按数值范围分成不同段,每段用不同颜色填充。核心是用fill_between()函数,通过where参数指定每个区域的条件,叠加多个填充层就能实现你要的效果。

完整代码示例

import matplotlib.pyplot as plt
import numpy as np

# 1. 生成单一数据集:模拟带趋势的时间序列数据
x = np.arange(0, 100, 1)  # x轴:0到99的时间点
y = np.random.randn(100).cumsum() + 10  # y轴:累积随机数,加10保证数值大部分为正

# 2. 定义区域分段规则:阈值+对应颜色
threshold_low = 5    # 低区域阈值
threshold_high = 15  # 高区域阈值
segment_colors = {
    "low": "#ffcccc",    # 浅红色:y < 5
    "mid": "#ccffcc",    # 浅绿色:5 ≤ y ≤15
    "high": "#ccccff"    # 浅蓝色:y >15
}

# 3. 创建画布并绘制基础折线
plt.figure(figsize=(12, 6))
plt.plot(x, y, color="#333333", linewidth=2, label="数据趋势线")

# 4. 分段填充区域
# 填充低区域:y低于低阈值时,填充y和低阈值之间的区域
plt.fill_between(
    x, y, threshold_low,
    where=(y < threshold_low),
    color=segment_colors["low"],
    alpha=0.5  # 透明度,避免遮挡折线
)
# 填充中间区域:y在两个阈值之间时,填充低阈值和y之间的区域
plt.fill_between(
    x, threshold_low, y,
    where=(y >= threshold_low) & (y <= threshold_high),
    color=segment_colors["mid"],
    alpha=0.5
)
# 填充高区域:y高于高阈值时,填充高阈值和y之间的区域
plt.fill_between(
    x, threshold_high, y,
    where=(y > threshold_high),
    color=segment_colors["high"],
    alpha=0.5
)

# 5. 添加辅助元素让图表更清晰
plt.axhline(y=threshold_low, color="#ff6666", linestyle="--", label="低阈值线")
plt.axhline(y=threshold_high, color="#6666ff", linestyle="--", label="高阈值线")

plt.xlabel("时间点", fontsize=12)
plt.ylabel("数值", fontsize=12)
plt.title("单一数据集的区域分段填充折线图", fontsize=14)
plt.legend(fontsize=10)
plt.grid(alpha=0.3)  # 添加网格线增强可读性

plt.show()

关键代码解释

  • fill_between():这是实现区域填充的核心函数,它可以填充两条曲线之间的区域。我们这里用它来填充折线和阈值线之间的区域。
  • where参数:用来指定填充的条件,只有满足条件的x区间才会被填充,完美实现分段效果。
  • 透明度alpha:设置为0.5可以让填充色不会完全遮挡折线和其他元素,视觉效果更友好。
  • 叠加填充:依次对低、中、高三个区域调用fill_between(),就能让不同区域显示不同颜色。

如果你需要基于其他规则分段(比如按x轴区间,而不是y值),只需要修改where里的条件即可,比如where=(x >= 0) & (x < 30)就能填充x从0到30的区域。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:23:21