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

基于Matplotlib高亮特定区域:补充中间绿色矩形需求

基于Matplotlib实现条件化区间高亮(绿色矩形)

需求梳理

你已经通过Matplotlib完成了基础图形及部分区域的绘制,现在需要新增以下功能:

  • 根据Ii01存储的编号区间,在x轴对应位置绘制绿色高亮矩形
  • 仅当Iv01中对应位置的数值大于阈值tol(如1e-9)时,才绘制该区间的矩形

实现方案

核心思路是遍历数据对,判断阈值条件后,用matplotlib.patches.Rectangle添加矩形到坐标轴:

步骤1:导入必要模块

如果还没导入,先添加:

import matplotlib.patches as patches

步骤2:在现有绘图代码后添加矩形绘制逻辑

假设你已有基础绘图代码(比如绘制曲线、设置坐标轴等),在plt.show()之前插入以下代码:

# 设定阈值
tol = 1e-9

# 获取当前坐标轴实例
ax = plt.gca()

# 获取当前y轴范围,用于确定矩形的上下边界
y_min, y_max = ax.get_ylim()

# 遍历Ii01和Iv01的所有对应元素
for i in range(len(Ii01)):
    for j in range(len(Ii01[i])):
        x_start, x_end = Ii01[i][j]
        current_value = Iv01[i][j]
        
        # 仅当数值大于阈值时绘制矩形
        if current_value > tol:
            # 创建矩形:左下角(x_start, y_min),宽度为区间长度,高度为y轴总范围
            highlight_rect = patches.Rectangle(
                (x_start, y_min), 
                x_end - x_start, 
                y_max - y_min,
                linewidth=1,        # 边框宽度
                edgecolor='green',  # 边框颜色
                facecolor='green',  # 填充颜色
                alpha=0.3           # 透明度,避免遮挡原有图形
            )
            # 将矩形添加到坐标轴
            ax.add_patch(highlight_rect)

# 重置y轴范围(防止添加矩形后自动缩放)
ax.set_ylim(y_min, y_max)

自定义调整建议

  • 若需要固定y轴范围,可手动替换y_min和y_max为具体数值(比如y_min=0, y_max=1.2)
  • 调整alpha值可以改变高亮的深浅,edgecolor和facecolor可分别设置边框和填充的颜色
  • 如果x轴不是整数编号刻度,需要确保Ii01中的数值与x轴坐标对应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 14:35:51