Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我可以不先绘制直方图而绘制正态概率分布吗?_Python_Matplotlib - Fatal编程技术网

Python 我可以不先绘制直方图而绘制正态概率分布吗?

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**

正态概率分布是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**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是的,把你的答案放在那里,然后我们可以把这个标记为重复的,这样以后其他谷歌用户就更容易了。我的意思是这就是这么做的全部想法,对吗?你想要的是问题的答案,而不取决于问题的年龄。因此,我们把问题当作重复的问题来解决,这样人们就可以在一个地方找到最好的答案,即使他们首先找到重复的问题。