【问题标题】:Seaborn : linear regression on top of a boxplotSeaborn:箱线图顶部的线性回归
【发布时间】:2019-01-20 08:30:45
【问题描述】:

使用 seaborn,我如何使用 sns.boxplot 和 sns.lmplot 从同一数据中获取带有回归线的箱线图? 这不起作用:

tips = sns.load_dataset("tips")
ax = sns.boxplot(x="size", y="tip", data=df)
ax = sns.lmplot(x="size", y="tip", data=tips, x_estimator=np.mean); 

【问题讨论】:

  • 如果你想让你的盒子在数字位置,你需要使用 matplotlib boxplot 并相应地设置位置。
  • 您遇到的问题是否可能是由于在箱线图中设置了data=df?如果不是,我不明白df 在这种情况下是什么

标签: python matplotlib statistics seaborn


【解决方案1】:

您可以尝试以下方法:

tips = sns.load_dataset("tips")
ax = sns.boxplot(x="size", y="tip", data=df)
ax = sns.regplot(x="size", y="tip", data=tips); 
plt.show()

您可以使用 regplot 来创建回归线,而不是使用 lmplot。

这里要注意的一点是,我看到您对每个绘图使用不同的数据,所以即使我不知道您在提示中拥有什么样的数据,您也可以尝试使用 df 而不是提示,因为使用不同的数据集可能会给你不同的结果。

【讨论】:

    【解决方案2】:

    请改用sns.regplot(),它是一个图形级函数,可让两个图放置在同一个图形中。

    下面的代码会给你一个带有回归线的箱线图。它还消除了回归中的分散。您可以根据需要更改回归的顺序。当 boxplot 和 regplot 使用相同的数据时,这将起作用。如果您要定义另一个数据集 df,请在您的问题中澄清,我将更新此答案。

    tips = sns.load_dataset("tips")
    
    fig, ax = plt.subplots()
    sns.boxplot(x="size", y="tip", data=tips, ax=ax)
    sns.regplot(x="size", y="tip", data=tips, ax=ax, scatter=False)
    
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-17
      • 2017-05-14
      • 2018-03-11
      • 2019-05-14
      • 2021-03-08
      • 1970-01-01
      • 2018-02-04
      • 1970-01-01
      相关资源
      最近更新 更多