Python 中用matplotlib 画出 numpy.random.beta分布
Background 背景说明
在学习中碰到beta分布, 刚好又在熟悉 numpy 以及 matplotlib 库,所以干脆就拿 matplotlib 实现 beta 分布作为练手
所以本篇文章主要包含以下几点:
- 熟悉Beta分布
- matplotlib 画 Beta分布图
- matplotlib 各属性设置
- matplotlib 支持中文标题
Β分布
Β分布
在概率论中,Β分布也称贝塔分布(Beta distribution),是指一组定义在{\displaystyle (0,1)}(0,1)区间的连续概率分布,有两个参数{\displaystyle \alpha ,\beta >0}\alpha ,\beta >0。
matplotlib 支持中文标题
Matplotlib 默认不支持中文,在title()中用中文标识时,只会出现一堆黑框
所以需要在 Matplotlib 添加字体支持
# 设置 plot 支持中文
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)
完整代码
import numpy as np
from scipy.stats import beta
import matplotlib.pyplot as plot
# 设置 plot 支持中文
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\SimSun.ttc", size=14)
# 定义一组alpha 跟 beta值
alpha_beta_values = [[0.5,0.5], [5, 1], [1,3], [2,2], [2,5]]
linestyles = []
# 定义 x 值
x = np.linspace(0, 1, 1002)[1:-1]
for alpha_beta_value in alpha_beta_values:
print(alpha_beta_value)
dist = beta(alpha_beta_value[0], alpha_beta_value[1])
dist_y = dist.pdf(x)
# 添加图例
# plot.legend('alpha=')
# 创建 beta 曲线
plot.plot(x, dist_y, label=r'$\alpha=%.1f,\ \beta=%.1f$' % (alpha_beta_value[0], alpha_beta_value[1]))
# 设置标题
plot.title(u'B分布', fontproperties=font)
# 设置 x,y 轴取值范围
plot.xlim(0, 1)
plot.ylim(0, 2.5)
plot.legend()
plot.show()