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

如何用pyplot.fill_between()实现指定样式的彩色填充图形?

修改Matplotlib填充代码实现目标图形效果

以下是调整后的代码,可以生成你想要的填充效果:

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

def g(x):
    return np.sqrt(x/4) 

def f(x):
   return 0.5

x = np.linspace(0, 1.0, 1000)
plt.xlim([0, 1.08])
plt.ylim([0, 0.55])

# 绘制两条曲线
plt.plot(x, g(x), color='blue')
plt.plot(x, f(x), color='red')  # 添加y=0.5的水平边界线

# 填充蓝色曲线与x轴之间的绿色区域
plt.fill_between(x, 0, g(x), color='green', alpha=0.9)
# 填充蓝色曲线与水平边界线之间的粉色区域
plt.fill_between(x, g(x), f(x), color='pink', alpha=0.6)

plt.xlabel('$\omega_q N$', fontsize=14, weight='bold') 
plt.ylabel('$g$', fontsize=14, weight='bold') 

plt.show()

关键修改点说明:

  • 移除阶梯填充参数:删掉了fill_between中的step="pre",避免生成阶梯状填充,还原平滑的填充效果。
  • 修正粉色填充范围:原代码填充的是y=0.5到x轴的区域,改为填充g(x)和f(x)(y=0.5)之间的区域,对应fill_between(x, g(x), f(x))。
  • 添加水平边界线:目标图中粉色区域上方有一条水平边界,显式绘制plt.plot(x, f(x), color='red')来实现。
  • 明确绿色填充下界:显式指定填充下界为0,让代码逻辑更清晰,效果与原代码去掉step后一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:45:41