首页 > 解决方案 > python - 如何在Python中的轴上投影某些值?

问题描述

我正在尝试使用 matplotlib 在 Python 中绘制正态分布曲线。为了生成图形,我遵循了post python pylab plot normal distribution中接受的答案。

我想知道是否有一种方法可以投影 mu - 3*sigma、mu + 3*sigma 以及 x 轴和 y 轴上的平均值。

谢谢

编辑 1 用于解释投影 example_image的图像。

在图像中,我试图在 x 和 y 轴上投影平均值。我想知道是否有一种方法可以实现这一点,同时获得 x 和 y 轴上的值(x 和 y 轴上的蓝色圆圈)。

标签: python-3.xmatplotlib

解决方案


以下脚本显示了如何实现您想要的:

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)代码中。


推荐阅读