通过numpy生成二项分布,记录数据,然后用matplotlib画图。主要是掌握一些画图的基本函数。
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
#计算出现的次数
def count(temp):
u = np.unique(temp)
cnt = []
dic = {}
for i in temp:
dic[i] = dic.get(i, 0) + 1
for i in u:
cnt.append(dic[i])
return u, cnt
#生成B(15,0.3),B(10,0.3),B(25,0.3)
n1 = 15
n2 = 10
n3 = n1 + n2
b1 = np.random.binomial(n1, 0.3, 10000)
b2 = np.random.binomial(n2, 0.3, 10000)
b3 = np.random.binomial(n3, 0.3, 10000)
u1, cnt1 = count(b1)
u2, cnt2 = count(b2)
u3, cnt3 = count(b3)
#画B(15,0.3)的图像
plt.bar(u1, height=cnt1, width=0.5, color='blue')
plt.xticks(np.arange(0, n1+1, 1))
plt.title(u'二项分布B(15,0.3)')
plt.ylabel(u'出现次数(共10000次)')
for x, y in zip(u1, cnt1):
plt.text(x, y+0.1, '%