Matplotlib 绘图函数输出与 seaborn 的线图不同

Matplotlib plot function output differs from seaborn's lineplot

我想绘制一个给定服从正态分布的数据的 PDF 函数。主要是我跟着thislink.

现在,如果我正在处理像在该网站 (x=np.linspace()) 上创建的数据,并用 seaborn.lineplot()matplotlib.pyplot.plot() 绘制它,我会得到一条正态曲线显示在上面 linked 的网站上。但是当我用 my own data (which I believe is normal, but with a lot more data points) instead of initializing it with np.linspace I get a clear normal curve with seaborn's lineplot and a messy normal curve with matplotlib's plot function.

这样做时

我试图在这两个函数上寻找默认参数,但找不到任何会导致此行为的参数(估计器除外)。 Seaborn 的线图的估计参数是唯一看起来可以做这样的事情的参数,但是将它设置为 None 没有任何区别(我认为这有点道理,因为 y 值总是相同的一个特定的 x 所以平均将产生相同的值)。

我之前一直以为两个函数是一样的,但是为什么输出不一样呢?

Seaborn lineplot 函数具有 default parameter sort=True

因此,除非您告诉它不要这样做,否则它会为您订购数据。这不是 pyplot.plot() 所做的事情,而是它会按照提供的顺序在点之间画线。

如果您想在使用 Pyplot 绘制数据之前对数据进行排序, 介绍了如何执行此操作。