当前位置: 首页 > 知识库问答 >
问题:

如何使用scipy.stats.norm.CDF和matplotlib获得sigmodal CDF曲线?

索卓
2023-03-14

我试图绘制一个正态分布的S形累积分布函数(cdf)曲线。 然而,我最终得到了一个均匀的分布。 我做错了什么?

测试脚本

import numpy as np
from numpy.random import default_rng
from scipy.stats import norm
import matplotlib.pyplot as plt

siz = 1000
rg = default_rng( 12345 )
a = rg.random(size=siz)
rg = default_rng( 12345 )
b = norm.rvs(size=siz, random_state=rg)
c = norm.cdf(b)

print( 'a = ', a)
print( 'b = ', b)
print( 'c = ', c)

fig, ax = plt.subplots(3, 1)
acount, abins, aignored = ax[0].hist( a, bins=20, histtype='bar', label='a', color='C0' )
bcount, bbins, bignored = ax[1].hist( b, bins=20, histtype='bar', label='b', color='C1' )
ccount, cbins, cignored = ax[2].hist( c, bins=20, histtype='bar', label='c', color='C2' )
print( 'acount, abins, aignored = ', acount, abins, aignored)
print( 'bcount, bbins, bignored = ', bcount, bbins, bignored)
print( 'ccount, cbins, cignored = ', ccount, cbins, cignored)
ax[0].legend()
ax[1].legend()
ax[2].legend()
plt.show()

共有2个答案

赵雅懿
2023-03-14

你在策划错误的价值观。 当您执行b=norm.rvs(size=siz,random_state=rg)时,您得到的是从标准正态分布中独立抽取的10个随机样本,即z

因此,它们的直方图就是你所看到的钟形曲线。

norm.cdf返回给定z值的CFD值。 如果你想要cdf的S曲线,你可以从-3到3个z值统一绘制,得到它们在所有点的cdf值。 然后绘制输出概率值。

编辑:另一个答案给出了这种方法的代码,所以我就不麻烦再添加了。

艾鹭洋
2023-03-14

我不知道你的具体申请。 但我认为问题在于,你正在为一些正态分布的随机数创建cdf的值。 下面您可以看到一个代码示例,它绘制了从-3到+3的标准法线的CDF

import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt

x = np.arange(-3, 3, 0.1)
c = norm.cdf(x)

plt.plot(x, c)
plt.show()

标准正态CDF

 类似资料:
  • 我正在测试一个图表,除了图例之外的一切都有效。我已经运行了下面的代码,没有在plt.plot中找到的标签,但是我仍然没有得到一个图例返回。有人能看出原因吗?

  • 问题内容: 我对这段代码的工作方式有些困惑: 在这种情况下,无花果轴如何工作?它有什么作用? 同样为什么这项工作不能做同样的事情: 问题答案: 有几种方法可以做到这一点。该方法创建图形以及子图,然后将其存储在数组中。例如: 但是,类似的事情也可以使用,但是并不是很“干净”,因为你要创建带有子图的图形,然后在其上添加:

  • 问题内容: 我的Go程序需要知道所有系统和用户进程的当前cpu使用率。 我如何获得? 问题答案: 我遇到了类似的问题,但从未找到轻量级的实现。这是我的解决方案的精简版,可以回答您的特定问题。我按照tylerl的建议对文件进行采样。您会注意到,我在两次采样之间等待3秒以匹配top的输出,但是在1或2秒的情况下我也取得了不错的结果。我在go例程中的循环中运行类似的代码,然后在需要其他go例程时访问cp

  • 问题内容: 我想删除多条线图中的特定线。贝娄是一个给我的例子,这对我来说还不够,因为它仅删除最后绘制的线条,而不删除我要删除的线条。我怎样才能做到这一点?如何在整个程序中寻址特定行(按名称,编号,参考)并删除该行? 问题答案: 几乎所有的绘图功能都返回对先前创建的对象的引用: 如果您有参考文献,则可以通过 (doc)函数ex删除艺术家:

  • 我正在使用Spring-Boot和Spring Security,并使用第三方的OAuth2登录名。 SSO提供程序有一个accesstokenendpoint,它返回以下JSON 引用来自accesstokenendpoint的JSON中的值。我如何访问这些值给定我的设置?

  • 我最近开始学习流和Lambda表达式,但我的代码遇到了一个问题。

  • 问题内容: 我想使用matplotlib来说明两个区域之间的定积分:x_0和x_1。 给定以下图,如何在matplotlib中的曲线下的阴影区域从x = -1到x = 1着色 问题答案: 结帐。这是有关填充受约束区域的示例。

  • 我正在尝试集成web API来获取当前正在播放/最近播放的歌曲。但是,我无法生成具有范围(user-read-one-play,user-read-report-state)的令牌。 我关注这个链接是为了引用Spotify。https://developer.spotify.com/web-api/authorization-guide/ 我得到了超文本标记语言响应。 请帮忙。非常感谢。