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

Matplotlib:扩展fill_between在X轴4.7-5区间的填充区域

解决Matplotlib fill_between X轴方向扩展填充区域的问题

要让填充区域从X=4.7延伸到X=5,只需扩展X轴数据数组,补充目标X点并对应设置Y值,具体操作如下:

  • 扩展X数组:将reference_point_x(即5)追加到原X数组末尾
  • 扩展Y数组:将原Y数组的最后一个值(1)追加到Y数组末尾,保证steps-post样式下折线从4.7水平延伸到5
  • 绘制折线和填充时使用扩展后的数组

修改后的完整代码:

import numpy as np
import matplotlib.pyplot as plt

v3_x = np.array([1.7, 1.8, 2.5, 3.4, 4, 4.1, 4.7])
v3_y = np.array([14, 9, 5, 3, 2.5, 1.5, 1]) 

reference_point_x = 5
reference_point_y = 15

# 扩展X、Y数组,适配steps-post的水平延伸需求
extended_x = np.append(v3_x, reference_point_x)
extended_y = np.append(v3_y, v3_y[-1])

plt.plot(extended_x, extended_y, drawstyle='steps-post', label='steps-post')
plt.plot(v3_x, v3_y, 'o', color='grey', alpha=0.3)
plt.plot(reference_point_x, reference_point_y, 'o--', color='grey', alpha=0.3)

# 使用扩展后的X数组实现X轴方向的填充扩展
plt.fill_between(extended_x, extended_y, reference_point_y, step="post", alpha=0.4)

plt.show()

这样修改后,填充区域会自动延伸到X=5的位置,同时折线的steps-post样式也能保持一致,不需要额外添加多余的线条或点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 08:05:26