-
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()
更多相关内容 -
python绘制正态分布图像
2021-03-31 20:22:20正态分布 公式: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πσ21e−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}} f(x)=2πσ21e−2σ2(x−μ)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绘制正态分布及三大抽样分布的概率密度图像
2020-12-22 09:12:042)python绘制正态分布的概率密度函数图象 4、卡方分布的概率密度函数及其图象 1)卡方分布的概率密度函数及其图象 2)python绘制卡方分布的概率密度函数图象 5、t分布的概率密度... -
使用python绘制3维正态分布图的方法
2020-12-26 00:53:40今天使用python画了几个好玩的3D展示图,现在分享给大家。 先贴上图片 使用的python工具包为: from matplotlib import pyplot as plt import numpy as np from mpl_toolkits.mplot3d import Axes3D 在贴代码... -
用excel、matlab、python绘制正态分布图
2021-03-23 20:18:38用excel、matlab、python绘制正态分布图excel绘图matlab绘图python绘图 为加深对统计知识的理解,老师要求用excel和matlab绘图,在这想介绍3个常见的绘图软件来绘制正态分布密度函数曲线和正态分布分布函数曲线。 ...为加深对统计知识的理解,老师要求用excel和matlab绘图,在这想介绍3个常见的绘图软件来绘制正态分布密度函数曲线和正态分布分布函数曲线。
excel:
matlab:excel绘图
使用函数为 norm.dist(x,mean,standard_dev,culmulative),其中参数分别是 样本值 均值 标准差 以及true 和false选项
先设置 样本值,样本值是一个个离散的点,步长选用不能太大。选用0.005,区间为【-5.005,5.005】
数据源的构建- 概率密度函数曲线f(x) :在culmulative填上false
- 概率分布函数曲线G(x) :在culmulative填上true
得到下表,做好数据源
(补充跨行居中操作)
绘制图
用折线图和散点图都可绘制
在这记录增加坐标轴箭头方向、改变横纵坐标轴交汇位置、改变线条粗细,使得其更像科研图
1.增加坐标轴箭头方向下滑有箭头选项
2.改变横纵坐标轴交汇位置:选中横坐标
3.改变线条粗细:在标记选项卡下,0,75磅
matlab绘图
下面展示
代码
。函数为normpdf
和normcdf
%% 概率密度函数 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
[2]:https://blog.csdn.net/way88liu/article/details/77853388?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.control&dist_request_id=1328679.65441.16165004936577557&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.control
[3]: https://blog.csdn.net/weixin_42695959/article/details/84036577 -
利用python绘制正态分布曲线
2021-01-11 22:56:48使用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求解正态分布置信区间教程
2020-09-18 10:45:50今天小编就为大家分享一篇Python求解正态分布置信区间教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
用python制作正态分布图
2020-12-02 22:18:51赛马正态分布图1.制作IQ数据图import numpy as npimport pandas as pdimport matplotlib.pyplot as plt#使用%matplotlib命令可以将matplotlib的图表直接嵌入到Notebook之中,或者使用指定的界面库显示图表,它有一个... -
Python数据可视化实现正态分布(高斯分布)
2020-12-26 06:24:10正态分布(Normal distribution)又成为高斯分布(Gaussian distribution) 若随机变量X服从一个数学期望为... # 绘制正态分布概率密度函数 u = 0 # 均值μ u01 = -2 sig = math.sqrt(0.2) # 标准差δ sig01 = mat -
python正态分布画图
2018-03-27 11:37:21用matplotlib和jupyter notebook绘制了正态函数的概率密度函数和概率累积函数 -
关于Python绘制正态分布图(概率密度分布)以及遇到的问题(label无法显示)
2022-05-10 20:43:23关于Python绘制正态分布图(概率密度分布)以及遇到的问题(label无法显示) 目的:统计神经网络模型的参数分布情况 使用seaborn给我们提供的distplot函数来绘制,即调用sns.distplot(),并传入相关参数即可,这里... -
在python中画正态分布图像的实例
2020-12-08 00:11:031.正态分布简介正态分布(normal distribtution)又叫做高斯分布(Gaussian distribution),是一个非常重要也非常常见的连续概率分布。...在python中画正态分布直方图先直接上代码import numpy as npim... -
Python绘制高斯分布(正态分布)图像,附python绘图技巧
2022-04-24 10:57:14Python绘制高斯分布(正态分布)图像,附python绘图技巧 -
python绘制正态分布曲线
2019-06-21 08:24:27场景:已知mean和variance,绘制正态分布曲线。 import numpy as np import matplotlib.pyplot as plt import pandas as pd import math #正态分布的概率密度函数。可以理解成 x 是 mu(均值)和 sigma(标准差)... -
python 绘制正态曲线的示例
2020-09-27 10:20:40主要介绍了python 绘制正态曲线的示例,帮助大家更好的利用python绘制图像,感兴趣的朋友可以了解下 -
python 制作正态分布图,画出拒绝域
2020-11-10 19:29:06下面的程序实现画出正态分布图形,并且画出相应的拒绝域范围。 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-正态分布
2020-09-22 02:47:24python正态分布 Python-正态分布 (Python - Normal Distribution) Advertisements 广告 Previous Page 上一页 Next Page 下一页 The normal distribution is a form presenting data by arranging the...