此文介绍了matplotlib.pyplot.fill_between函数的所有参数及其用法:matplotlib.pyplot.fill_between
此文介绍了Hatch的填充格式参考:Hatch style reference
接下来小菜将通过代码演示各种绘图形式。
以下是一段绘制正态分布曲线图及其规格界限的代码,小菜绘制了三种样式:
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# 设置字体和大小
plt.rcParams['font.family'] = 'Times New Roman'
plt.rcParams['font.size'] = 12
# 生成x轴的数据点
x = np.linspace(-10, 30, 1000) # 扩展范围以适应两个分布
# 定义正态分布的参数
mu1, sigma1 = 10, 6 # 均值和标准差
# 计算正态分布的概率密度函数
pdf1 = norm.pdf(x, mu1, sigma1)
# 绘制正态分布曲线
plt.plot(x, pdf1, color='#925EB0', label='X~N(5,6)')
# 填充规格界限范围内的区域
# plt.fill_between(x, pdf1, where=(x > 8) & (x < 12), alpha=0.5, facecolor = 'lightblue', edgecolor = 'red') # 样式1
# plt.fill_between(x, pdf1, where=(x > 8) & (x < 12), alpha=0.5, hatch = '///', facecolor = 'lightblue', edgecolor = 'red') # 样式2
plt.fill_between(x, pdf1, where=(x > 8) & (x < 12), alpha=0.5, hatch = 'xxx', facecolor = 'lightblue', edgecolor = 'red') # 样式3
# 添加95.4%的百分比标注
plt.text(10, plt.ylim()[1]*0.6, 'PASS', horizontalalignment='center', fontsize=8, color='black',backgroundcolor = 'white')
plt.ylim([0,0.08])
# 添加图例
plt.legend()
# 添加标题和标签
plt.xlabel('x')
plt.ylabel('概率密度', fontproperties='Microsoft YaHei')
plt.savefig("hatch.png", dpi=600, format="png")
fill_between()函数的颜色与text()函数的颜色输出不一致,小菜也无从解释,所以使用了白色的backgroundcolor。
样式1——纯色填充:
样式2——斜线填充:
样式3——格纹填充: