Python 我可以不先绘制直方图而绘制正态概率分布吗?
正态概率分布是x轴上的b/w x和y轴上的f(x)图。但是当我画这个的时候,我得到了重叠的曲线。我在这个网站上读到了关于正态分布的不同答案。他们首先绘制直方图,然后绘制(x,f)。是否必须先绘制直方图?我可以不用直方图吗Python 我可以不先绘制直方图而绘制正态概率分布吗?,python,matplotlib,Python,Matplotlib,正态概率分布是x轴上的b/w x和y轴上的f(x)图。但是当我画这个的时候,我得到了重叠的曲线。我在这个网站上读到了关于正态分布的不同答案。他们首先绘制直方图,然后绘制(x,f)。是否必须先绘制直方图?我可以不用直方图吗 `mu, sigma = 0, 0.1 x = np.random.normal(mu, sigma, 200) print(x) f = 1/(sigma * np.sqrt(2 * np.pi)) *np.exp( - (x - mu)**2 / (2 * sigma**
`mu, sigma = 0, 0.1
x = np.random.normal(mu, sigma, 200)
print(x)
f = 1/(sigma * np.sqrt(2 * np.pi)) *np.exp( - (x - mu)**2 / (2 * sigma**2) )
print(f)
plt.plot(x,f)`
首先,x数据只是未排序。要突出显示这一点,如果仅使用标记进行打印,您将看到所看到的重叠是连续连接离散数据点的线的伪影。这里的
ms=2
是书写markersize=2
的一种简短形式,它指定了标记的大小(本例中为点、圆)。在ko
中,k
是黑色的代码,o
是使用标记的符号。您也可以编写'o',color='black'
作为替代-ko
表示用黑线连接圆形点-go
,-bo
,-ro
分别表示绿色、蓝色和红色
mu, sigma = 0, 0.1
x = np.random.normal(mu, sigma, 200)
f = 1/(sigma * np.sqrt(2 * np.pi)) *np.exp( - (x - mu)**2 / (2 * sigma**2) )
plt.plot(x,f, 'ko', ms = 2)
输出
要纠正这一点,您可以在计算f
as时使用排序的x,并在打印时进一步使用排序的x
f = 1/(sigma * np.sqrt(2 * np.pi)) *np.exp( - (np.sort(x) - mu)**2 / (2 * sigma**2) )
plt.plot(np.sort(x),f, '-ko', ms = 2)
输出
绘制正态分布不需要绘制样本。如果只使用等距的数字序列,效果会更好
mu, sigma = 0, 0.1
x = np.linspace(-0.4, 0.4, 100)
f = 1/(sigma * np.sqrt(2 * np.pi)) *np.exp( - (x - mu)**2 / (2 * sigma**2) )
plt.plot(x, f)
打印顺序无关紧要。共享所需的图像和工作代码,这两个代码都会打印您没有打印任何直方图吗?在上图中,没有任何重叠。是的,我没有绘制直方图。我试图画出给定数据x的正态概率分布。但我不希望这种重叠。我阅读了有关正态分布的叠加流的答案。他们首先绘制plt.hist(x,bin),然后绘制plt.plot(bin,f)。我想知道是否必须先绘制直方图?第二,我想知道如何克服上图中的重叠。因此,除了你所拥有的以外,没有必要绘制任何东西。混沌线源于数据没有被排序。您可以
plt.plot(np.sort(x),f[np.argsort(x)])
。或者你可以在应用f之前对你的x
进行排序,x=np.random.normal(mu,sigma,200)。sort()
可能的重复。你能说说为什么ms=2,什么是ms吗?我签入了文档,没有使用此名称的参数。。也许这个答案(使用numpy.sort)更适合那里?@ImportanceOfBeingErnest:你认为两年后回答会值得吗?@Bazingaa是的,把你的答案放在那里,然后我们可以把这个标记为重复的,这样以后其他谷歌用户就更容易了。我的意思是这就是这么做的全部想法,对吗?你想要的是问题的答案,而不取决于问题的年龄。因此,我们把问题当作重复的问题来解决,这样人们就可以在一个地方找到最好的答案,即使他们首先找到重复的问题。