如何在Python中从轴上的图形投影某些值?

时间:2019-01-07 19:24:53

标签: python-3.x matplotlib

我正在尝试使用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轴上的蓝色圆圈)。

1 个答案:

答案 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()

产生的情节是

enter image description here

如果您熟悉正态分布的属性,很容易知道与x轴的交点仅为mu,即分布均值。 y轴的交点只是y的最大值,即代码中的max(y)