求助:如何调整Matplotlib填充区域以匹配目标图表效果
解决Matplotlib周期波形填充区域裁剪问题
- 用
fill_between的where参数做条件裁剪:
针对周期波形,可结合模运算限定每个周期内的填充区间,比如要填充每个周期前半段波形与基准线的区域,就设置where=(x % period) < period/2,按需调整条件即可匹配参考图的范围。 - 自定义填充上下边界:
通过y2参数指定填充的基准线(比如参考图中的特定水平轴或曲线),替代默认的0,精准控制填充的上下范围。 - 多条件组合实现复杂裁剪:
叠加多个布尔条件(用&/|连接),比如where=(y > threshold) & ((x % period) > period/3),实现“仅在周期特定区间且波形高于阈值”的填充效果。 - 周期裁剪示例代码:
import matplotlib.pyplot as plt import numpy as np # 生成周期波形数据 x = np.linspace(0, 4*np.pi, 2000) y = np.sin(x) + 0.5*np.sin(3*x) period = 2*np.pi # 定义每个周期内的填充区间(比如后1/4周期,且波形高于0) fill_mask = ((x % period) > 3*period/4) & (y > 0) # 执行填充 plt.fill_between(x, y, 0, where=fill_mask, color='#ff7f0e', alpha=0.4) plt.plot(x, y, color='#1f77b4', linewidth=1.5) plt.grid(alpha=0.3) plt.show()
内容的提问来源于stack exchange,提问作者Alduin
相关产品推荐
相关产品推荐

