如何用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
相关产品推荐
相关产品推荐

