【问题标题】:Matplotlib plot function output differs from seaborn's lineplotMatplotlib 绘图函数输出与 seaborn 的线图不同
【发布时间】:2021-06-30 13:32:28
【问题描述】:

我想在给定数据的情况下绘制一个 PDF 函数,该函数遵循正态分布。主要是我关注了this链接。

现在,如果我正在处理在该网站 (x=np.linspace()) 上创建的数据,并使用seaborn.lineplot()matplotlib.pyplot.plot() 绘制它,我会得到一条正态曲线,如上面链接的网站所示。但是当我用my own data(我认为这是正常的,但有更多的数据点)而不是用np.linspaceI get a clear normal curve with seaborn's lineplota messy normal curve with matplotlib's plot function初始化它时。

我试图在这两个函数上查找默认参数,但找不到任何会导致此行为的(估计器除外)。 Seaborn 的 lineplot 的 estimator 参数是唯一看起来可以执行此类操作的参数,但将其设置为 None 并没有任何区别(我认为这有点道理,因为 y 值对于特定的 x 总是相同的,所以平均会产生相同的值)。

我以前认为两个函数是一样的,但是为什么它们有不同的输出呢?

【问题讨论】:

标签: python matplotlib seaborn data-visualization data-analysis


【解决方案1】:

Seaborn lineplot 函数具有 default parameter sort=True

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

如果您想在使用 Pyplot 绘制数据之前对数据进行排序,可以通过 good solution 了解如何执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-24
    • 2021-05-12
    • 1970-01-01
    • 2019-10-03
    • 1970-01-01
    • 2019-04-22
    • 2018-11-23
    • 1970-01-01
    相关资源
    最近更新 更多