• Python绘制正态分布曲线
2020-12-02 22:18:54

使用Python绘制正态分布曲线，借助matplotlib绘图工具； $$f(x) = \dfrac{1}{\sqrt{2\pi}\sigma}\exp(-\dfrac{(x-\mu)^2}{2\sigma^2})$$

#-*-coding:utf-8-*-

"""

python绘制标准正态分布曲线

"""

# ==============================================================

import numpy as np

import math

import matplotlib.pyplot as plt

def gd(x, mu=0, sigma=1):

"""根据公式，由自变量x计算因变量的值

Argument:

x: array

输入数据(自变量)

mu: float

均值

sigma: float

方差

"""

left = 1 / (np.sqrt(2 * math.pi) * np.sqrt(sigma))

right = np.exp(-(x - mu)**2 / (2 * sigma))

return left * right

if __name__ == '__main__':

# 自变量

x = np.arange(-4, 5, 0.1)

# 因变量(不同均值或方差)

y_1 = gd(x, 0, 0.2)

y_2 = gd(x, 0, 1.0)

y_3 = gd(x, 0, 5.0)

y_4 = gd(x, -2, 0.5)

# 绘图

plt.plot(x, y_1, color='green')

plt.plot(x, y_2, color='blue')

plt.plot(x, y_3, color='yellow')

plt.plot(x, y_4, color='red')

# 设置坐标系

plt.xlim(-5.0, 5.0)

plt.ylim(-0.2, 1)

ax = plt.gca()

ax.spines['right'].set_color('none')

ax.spines['top'].set_color('none')

ax.xaxis.set_ticks_position('bottom')

ax.spines['bottom'].set_position(('data', 0))

ax.yaxis.set_ticks_position('left')

ax.spines['left'].set_position(('data', 0))

plt.legend(labels=['$\mu = 0, \sigma^2=0.2$', '$\mu = 0, \sigma^2=1.0$', '$\mu = 0, \sigma^2=5.0$', '$\mu = -2, \sigma^2=0.5$'])

plt.show()

更多相关内容
• 正态分布 公式：f(x)=12πσ2e−(x−μ)22σ2f(x)=\frac{1}{\sqrt{2\pi \sigma^2}}e^{-\frac{(x-\mu)^2}{2\sigma^2}}f(x)=2πσ2​1​e−2σ2(x−μ)2​ Python代码 import numpy as np import matplotlib.pyplot as...

## 正态分布

公式： f ( x ) = 1 2 π σ 2 e − ( x − μ ) 2 2 σ 2 f(x)=\frac{1}{\sqrt{2\pi \sigma^2}}e^{-\frac{(x-\mu)^2}{2\sigma^2}}

## Python代码

import numpy as np
import matplotlib.pyplot as plt
import math

# 定义正态分布函数
def normal_distribution(x, mu, sigma):
return np.exp( -1 * ( (x-mu) ** 2) / ( 2 * (sigma ** 2)) ) / (math.sqrt( 2 * np.pi ) * sigma)

# 初始化mu, sigma
mu, sigma = 160, 8.65
x = np.linspace( mu - 6 * sigma, mu + 6 * sigma, 100)
y = normal_distribution(x, mu, sigma)
plt.plot(x, y, 'r', label='mu = {0},sigma = {1}'.format(mu, sigma))
plt.legend()
plt.grid()
plt.show()


## 参考资料

python绘制正态分布（高斯分布）

展开全文
•     2）python绘制正态分布的概率密度函数图象   4、卡方分布的概率密度函数及其图象     1）卡方分布的概率密度函数及其图象     2）python绘制卡方分布的概率密度函数图象   5、t分布的概率密度...
• 今天使用python画了几个好玩的3D展示，现在分享给大家。 先贴上图片 使用的python工具包为： from matplotlib import pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D 在贴代码...
• 用excel、matlab、python绘制正态分布图excel绘图matlab绘图python绘图 为加深对统计知识的理解，老师要求用excel和matlab绘图，在这想介绍3个常见的绘图软件来绘制正态分布密度函数曲线和正态分布分布函数曲线。 ...

### 用excel、matlab、python绘制正态分布图

为加深对统计知识的理解，老师要求用excel和matlab绘图，在这想介绍3个常见的绘图软件来绘制正态分布密度函数曲线和正态分布分布函数曲线。
excel:

matlab：

## excel绘图

使用函数为 norm.dist(x,mean,standard_dev,culmulative)，其中参数分别是 样本值 均值 标准差 以及true 和false选项
先设置 样本值，样本值是一个个离散的点，步长选用不能太大。选用0.005，区间为【-5.005，5.005】
数据源的构建

1. 概率密度函数曲线f(x) ：在culmulative填上false
2. 概率分布函数曲线G(x) ：在culmulative填上true
得到下表，做好数据源
（补充跨行居中操作）

绘制图
用折线图和散点图都可绘制
在这记录增加坐标轴箭头方向、改变横纵坐标轴交汇位置、改变线条粗细，使得其更像科研图
1.增加坐标轴箭头方向下滑有箭头选项

2.改变横纵坐标轴交汇位置：选中横坐标

3.改变线条粗细：在标记选项卡下，0，75磅

## matlab绘图

下面展示 代码。函数为normpdfnormcdf

%% 概率密度函数
subplot(2,1,1)
x=-10:0.01:10;
y=normpdf(x,2,2.5);
y2=normpdf(x,0,1);
plot(x,y,x,y2)
grid on
legend("标准正态分布","一般正态分布")
xlabel("X")
ylabel("f(x)")
title("概率密度曲线")

%% 概率分布函数
subplot(2,1,2)
x=-10:0.01:10;
y=normcdf(x,2,2.5);
y2=normcdf(x,0,1);
plot(x,y,x,y2)
grid on
legend("标准正态分布","一般正态分布")
xlabel("X")
ylabel("G(x)")
title("概率分布曲线")


## python绘图

在安装时，出现了uninstall pip错误，参考方法[^1]：
首先执行 python -m ensurepip 然后执行 python -m pip install --upgrade pip
然后可以顺利利用pip来安装：pip install scipy
1.使用密度分布公式来计算得到密度函数[^2]

2.使用函数计算[^3]

由于时间问题，python的制图下次再继续学习

补充：用excel的随机数工具箱，来以正态分布形式来生成大量随机数，随机数的个数越多则以此数据做出来的折线图也就越光滑
matlab有个 difttool也可以生成随机数、正态分布，做出来的图是柱状图
[1]: https://blog.csdn.net/wuyepiaoxue789/article/details/84033651
[3]: https://blog.csdn.net/weixin_42695959/article/details/84036577

展开全文
• 使用Python绘制正态分布曲线，借助matplotlib绘图工具； #-*-coding:utf-8-*-"""python绘制标准正态分布曲线"""# ==============================================================import numpy as npimport ...

使用Python绘制正态分布曲线，借助matplotlib绘图工具；

#-*-coding:utf-8-*-

"""

python绘制标准正态分布曲线

"""

# ==============================================================

import numpy as np

import math

import matplotlib.pyplot as plt

def gd(x, mu=0, sigma=1):

"""根据公式，由自变量x计算因变量的值

Argument:

x: array

输入数据(自变量)

mu: float

均值

sigma: float

方差

"""

left = 1 / (np.sqrt(2 * math.pi) * np.sqrt(sigma))

right = np.exp(-(x - mu)**2 / (2 * sigma))

return left * right

if __name__ == '__main__':

# 自变量

x = np.arange(-4, 5, 0.1)

# 因变量(不同均值或方差)

y_1 = gd(x, 0, 0.2)

y_2 = gd(x, 0, 1.0)

y_3 = gd(x, 0, 5.0)

y_4 = gd(x, -2, 0.5)

# 绘图

plt.plot(x, y_1, color='green')

plt.plot(x, y_2, color='blue')

plt.plot(x, y_3, color='yellow')

plt.plot(x, y_4, color='red')

# 设置坐标系

plt.xlim(-5.0, 5.0)

plt.ylim(-0.2, 1)

ax = plt.gca()

ax.spines['right'].set_color('none')

ax.spines['top'].set_color('none')

ax.xaxis.set_ticks_position('bottom')

ax.spines['bottom'].set_position(('data', 0))

ax.yaxis.set_ticks_position('left')

ax.spines['left'].set_position(('data', 0))

plt.legend(labels=['$\mu = 0, \sigma^2=0.2$', '$\mu = 0, \sigma^2=1.0$', '$\mu = 0, \sigma^2=5.0$', '$\mu = -2, \sigma^2=0.5$'])

plt.show()

以上就是利用python绘制正态分布曲线的详细内容，更多关于python 正态分布的资料请关注脚本之家其它相关文章！

展开全文
• 今天小编就为大家分享一篇Python求解正态分布置信区间教程，具有很好的参考价值，希望对大家有所帮助。一起跟随小编过来看看吧
• 赛马正态分布图1.制作IQ数据图import numpy as npimport pandas as pdimport matplotlib.pyplot as plt#使用%matplotlib命令可以将matplotlib的图表直接嵌入到Notebook之中，或者使用指定的界面库显示图表，它有一个...
• 正态分布（Normal distribution）又成为高斯分布（Gaussian distribution） 若随机变量X服从一个数学期望为... # 绘制正态分布概率密度函数 u = 0 # 均值μ u01 = -2 sig = math.sqrt(0.2) # 标准差δ sig01 = mat
• 用matplotlib和jupyter notebook绘制正态函数的概率密度函数和概率累积函数
• 关于Python绘制正态分布图（概率密度分布）以及遇到的问题（label无法显示） 目的：统计神经网络模型的参数分布情况 使用seaborn给我们提供的distplot函数来绘制，即调用sns.distplot()，并传入相关参数即可，这里...
• 1.正态分布简介正态分布(normal distribtution)又叫做高斯分布(Gaussian distribution)，是一个非常重要也非常常见的连续概率分布。...在python中画正态分布直方先直接上代码import numpy as npim...
• Python绘制高斯分布（正态分布）图像，附python绘图技巧
• 场景：已知mean和variance，绘制正态分布曲线。 import numpy as np import matplotlib.pyplot as plt import pandas as pd import math #正态分布的概率密度函数。可以理解成 x 是 mu（均值）和 sigma（标准差）...
• 主要介绍了python 绘制正态曲线的示例，帮助大家更好的利用python绘制图像，感兴趣的朋友可以了解下
• 下面的程序实现画出正态分布图形，并且画出相应的拒绝域范围。 from scipy.stats import norm import numpy as np import matplotlib.pyplot as plt import matplotlib.style as style import scipy.stats as stats ...
• python正态分布 Python-正态分布 (Python - Normal Distribution) Advertisements 广告 Previous Page 上一页 Next Page 下一页 The normal distribution is a form presenting data by arranging the...

...