以下是详细讲解Python画图高斯分布的示例的完整攻略:
1. 准备工作
首先,我们需要导入相关的Python库和模块,包括numpy和matplotlib等。在命令行中输入以下命令:
import numpy as np
import matplotlib.pyplot as plt
这样就可以在程序中使用numpy和matplotlib库中的函数和方法了。
2. 生成高斯分布数据
接下来,我们需要生成高斯分布数据。假设我们要生成一个均值为5,标准差为2的高斯分布数据,可以使用以下代码:
mu, sigma = 5, 2
data = np.random.normal(mu, sigma, 1000)
其中,mu是高斯分布的均值,sigma是标准差,1000表示样本数。np.random.normal()函数会返回一组符合高斯分布的随机数据。
3. 绘制高斯分布图像
最后,我们需要将生成的高斯分布数据绘制成图像。可以使用matplotlib的pyplot模块中的hist()函数绘制直方图。代码如下:
count, bins, ignored = plt.hist(data, 30, normed=True)
plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
np.exp(- (bins - mu)**2 / (2 * sigma**2)),
linewidth=2, color='r')
plt.show()
在hist()函数中,我们传入生成的高斯分布数据data,并指定bin数量为30,并设置normed参数为True,表示将样本数标准化为概率密度。该函数会返回三个值:count表示每个bin的值,bins表示每个bin的范围,ignored表示非正常输入值的数量。
在绘制高斯分布曲线的部分,使用plot()函数绘制曲线,其中bins是横坐标,1/(sigma * np.sqrt(2 * np.pi)) * np.exp(- (bins - mu)2 / (2 * sigma2))表示高斯分布的概率密度函数,linewidth=2设置曲线宽度为2,color='r'表示曲线颜色为红色。
最后,使用show()函数显示图像即可。
示例1
假设有一个班级,其中考试成绩符合高斯分布,需要画出成绩分布图像。
我们可以先生成一组符合高斯分布的随机数据,然后使用matplotlib的pyplot模块中的hist()函数绘制直方图。具体代码如下:
import numpy as np
import matplotlib.pyplot as plt
mu, sigma = 70, 10
data = np.random.normal(mu, sigma, 1000)
count, bins, ignored = plt.hist(data, 30, normed=True)
plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
np.exp(- (bins - mu)**2 / (2 * sigma**2)),
linewidth=2, color='r')
plt.xlabel('Score')
plt.ylabel('Probability density')
plt.title('Score distribution')
plt.show()
运行上述代码后,我们可以得到一个包含班级考试成绩分布的图像。
示例2
假设有一批体重数据,需要画出体重分布图像,并指出其中超标的数据。
我们可以先生成一组符合高斯分布的随机数据,然后使用matplotlib的pyplot模块中的hist()函数绘制直方图,并在图像中用不同的颜色标示出超过一定体重的数据。具体代码如下:
import numpy as np
import matplotlib.pyplot as plt
mu, sigma = 60, 10
data = np.random.normal(mu, sigma, 1000)
overweight = data[data > 75]
plt.hist(data, 30, alpha=0.5, label='Weight')
plt.hist(overweight, 30, alpha=0.5, label='Overweight', color='r')
plt.xlabel('Weight')
plt.ylabel('Frequency')
plt.title('Weight distribution')
plt.legend()
plt.show()
我们将超过75kg的数据标记为超标数据,使用alpha参数设置不同图像的透明度,使用label参数设置图例,最终绘制出包含超标数据的体重分布图像。
这两个示例说明了在实际工作中,高斯分布常常被用来表达一些事物的分布情况,可以结合具体情况绘制出相应的分布图像,并进行进一步的分析和处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python画图高斯分布的示例 - Python技术站