我正在尝试使用matplotlib在Python中绘制正态分布曲线。我遵循帖子accepted answer中的python pylab plot normal distribution来生成图形。
我想知道是否有一种方法可以在x轴和y轴上投影mu-3 * sigma,mu + 3 * sigma和平均值。
谢谢
编辑1 用于解释投影的图像 example_image。
在图像中,我试图将平均值投影到x和y轴上。我想知道是否有一种方法可以同时获得x和y轴上的值(x和y轴上的蓝色圆圈)。
答案 0 :(得分:0)
以下脚本显示了如何实现您想要的:
import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as stats
mu = 2
variance = 9
sigma = np.sqrt(variance)
x = np.linspace(mu - 3*sigma, mu + 3*sigma, 500)
y = stats.norm.pdf(x, mu, sigma)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xlim([min(x), max(x)])
ax.set_ylim([min(y), max(y)+0.02])
ax.hlines(y=max(y), xmin=min(x), xmax=mu, color='r')
ax.vlines(x=mu, ymin=min(y), ymax=max(y), color='r')
plt.show()
产生的情节是
如果您熟悉正态分布的属性,很容易知道与x轴的交点仅为mu
,即分布均值。 y轴的交点只是y的最大值,即代码中的max(y)
。