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

如何用Matplotlib为折线图中y值大于0.5的区域填充阴影

实现折线图中Y值大于0.5区域的阴影填充

你当前的代码填充了曲线与Y=0之间的区域,但需要的是填充曲线在Y=0.5以上的部分。可以通过fill_between的where参数指定填充条件,同时设置interpolate=True保证曲线与水平线交点处的填充更平滑。

修改后的代码如下:

import numpy as np
import matplotlib.pyplot as plt

n = 256
X = np.linspace(-np.pi, np.pi, n, endpoint=True)
Y = np.sin(2 * X)
fig, ax = plt.subplots()

# 绘制原曲线
ax.plot(X, Y, color='blue', alpha=1.0)
# 填充Y>0.5的区域,以0.5为下限、曲线为上限
ax.fill_between(X, 0.5, Y, where=(Y > 0.5), color='blue', alpha=.2, interpolate=True)
# 绘制Y=0.5的水平线
plt.axhline(0.5, color="black")

plt.show()

关键说明:

  • where=(Y > 0.5):限定仅填充Y值大于0.5的区域
  • interpolate=True:自动计算曲线与Y=0.5水平线的交点位置,避免填充出现断层
  • 填充上下限设为0.5和Y,确保只填充曲线在水平线以上的部分

当前图表效果:蓝色曲线与Y=0之间有填充阴影,Y=0.5处有黑色水平线,但未填充Y>0.5的区域。
期望图表效果:仅在蓝色曲线高于黑色水平线(Y=0.5)的部分下方填充阴影,其余区域无额外填充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:40:00