用python绘制法线曲线

用python绘制法线曲线,python,excel,normal-distribution,Python,Excel,Normal Distribution,我在python中看到了很多关于正态分布和曲线绘制的文档,对此我有点困惑,我生成了均值为30、标准偏差为3.7的正态随机变量,并使用函数norm.dist估计了pdf函数 =NORM.DIST(A2,$H$2,$I$2,FALSE) 根据这个公式,我画了散点图,得到了 为了演示,我想用python绘制相同的草图,我找到了scipy和numpy版本,请帮我把事情弄清楚,下面是我的一些数字 我尝试了以下代码 from scipy.stats import norm import pandas

我在python中看到了很多关于正态分布和曲线绘制的文档,对此我有点困惑,我生成了均值为30、标准偏差为3.7的正态随机变量,并使用函数norm.dist估计了pdf函数

=NORM.DIST(A2,$H$2,$I$2,FALSE)
根据这个公式,我画了散点图,得到了

为了演示,我想用python绘制相同的草图,我找到了scipy和numpy版本,请帮我把事情弄清楚,下面是我的一些数字

我尝试了以下代码

from scipy.stats import norm
import  pandas as pd
import matplotlib.pyplot as plt
data_random =pd.read_excel("data_for_normal.xlsx")
data_values =data_random["NormalVariables"].values
pdf_values =norm.pdf(data_values,30,3.7)
plt.plot(data_values,pdf_values)
plt.title("normal curve")
plt.xlabel("x values")
plt.ylabel("probability density function")
plt.show()
但是我有

结果:

print(data_random.head(10))
 NormalVariables
0        29.214494
1        30.170595
2        36.014144
3        30.388626
4        28.398749
5        24.861042
6        29.519316
7        24.207164
8        35.779376
9        26.042977
因此,您在绘图中看到所有交叉的原因是您绘制了未排序的数据

如果您只是想从excel复制绘图,请改用plt.scatter。此图仅绘制数据点,不绘制它们之间的连接

x = [2,0,1]
y = [3,1,4]
plt.scatter(x,y)

所以说我不知道答案最流行的方式是向下投票:D:DMaybe会有帮助吗?我找到了这个,只是我对参数感到困惑。我发现下面的代码使用normal.pdf,但效果不好。请不要发布代码、数据或回溯的图像。复制并粘贴为文本,然后将其格式化为代码选择它并键入ctrl-k…-把数据包括在内怎么样
#note that lines are drawn between adjacent elements in the list,
#so a line from (0,1) to (1,4) and then to (2,3)

# if the order of the datapoints is changed, the position of the datapoints 
# remains unchanged, but now lines are drawn between different points

x = [2,0,1]
y = [3,1,4]
plt.plot(x,y)
x = [2,0,1]
y = [3,1,4]
plt.scatter(x,y)