首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Python中的numpy和matplotlib绘制两条正态分布曲线--第二条曲线比第一条曲线更短、更窄?

如何用Python中的numpy和matplotlib绘制两条正态分布曲线--第二条曲线比第一条曲线更短、更窄?
EN

Stack Overflow用户
提问于 2022-08-29 22:35:46
回答 1查看 56关注 0票数 0

我想绘制两条正态分布曲线如下所示。与右侧较高的正态分布曲线相比,左侧较短的正态分布曲线也较窄。

我尝试了以下几点:

代码语言:javascript
复制
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()

value = np.random.normal(loc=0, scale=2, size=1000)
sns.kdeplot(x = value, ax = ax, linestyle = "--", color = "red")

value2 = np.random.normal(loc= -2,scale=2, size=1000)
sns.kdeplot(x = value2, ax = ax, linestyle = "--", color = "blue")
plt.show()

当两条曲线的标准偏差(尺度)相同(各2条)时,两条曲线的宽度和高度几乎相等,如下所示:

当我将蓝色曲线的标度/标准差降到0.5,并将红色曲线的标度保持为2时,蓝色曲线的宽度会变窄,但它比红色曲线要高得多,如下所示:

是否可以同时降低正态分布曲线的高度和宽度,以达到可视化目的?如何使用Python中的numpy、matplotlib或seaborn库来实现?

EN

回答 1

Stack Overflow用户

发布于 2022-08-29 22:42:52

.normal()输出是故意给出一个单位面积的分布。也就是说,从-∞..。+∞产生1.0。这被证明是非常有用的建模,例如pdf格式概率密度函数,其中我们知道某事发生了与概率1。

在您的代码中,您可以替换

代码语言:javascript
复制
value = np.random.normal( ...

使用

代码语言:javascript
复制
value = k * np.random.normal( ...

然后在k值大于1,也许是2或3的情况下,看看曲线是如何向上扩展的。根据口味调整一下。

https://numpy.org/doc/stable/reference/random/generated/numpy.random.normal.html

编辑

哦,我明白了,你在用克布利特。别干那事。它希望该区域集成到1.0。当您使用k进行缩放时,它将按1 / k进行缩放。

而更喜欢散点图

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73535331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档