Следующий скрипт показывает, как добиться того, чего вы хотите:
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)
в коде.