【问题标题】:Adding splitplot (dotplot) to grouped boxplot - Panda and Seaborn将分割图(点图)添加到分组箱线图 - Pandas 和 Seaborn
【发布时间】:2016-06-12 16:43:30
【问题描述】:

我第一次使用 seaborn,并尝试制作一个嵌套(分组)箱线图,其中数据点添加为点。这是我的代码:

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
sns.set(style="ticks")
## Draw a nested boxplot to show bills by day and sex
sns.boxplot(x="day", y="total_bill", hue="smoker",data=tips,width=0.5,palette="PRGn",linewidth=1)

## Draw a split strip plot
sns.stripplot(x="day", y="total_bill", hue="smoker",palette="PRGn",data=tips,size=4,edgecolor="gray",
             split=True)
sns.despine(offset=10, trim=True)
plt.show()

还有图:

由于箱线图中使用了 'width' 参数,您会看到点没有以框为中心。有什么办法可以将点与框对齐? boxplot 命令中的宽度参数是未对齐点的原因。

附言- 我已经添加了 tom 提到的 MCVE。

巴德

【问题讨论】:

  • this page 底部的示例中,它们似乎居中(尽管在水平而不是垂直的图中)。也许您可以在重现此行为的问题中添加MCVE
  • @tom:我添加了示例。

标签: pandas matplotlib boxplot seaborn


【解决方案1】:

组之间的距离是自动计算的,据我所知,没有简单的方法可以更改它,但是您正在使用一种间接的方式在箱线图中对其进行修改:关键字width。使用默认值,一切都会对齐。

sns.set(style="ticks")
sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips,
            palette="PRGn", linewidth=1)
sns.stripplot(x="day", y="total_bill", hue="smoker", data=tips,
              palette="PRGn", size=4, edgecolor="gray", split=True)
sns.despine(offset=10, trim=True)

【讨论】:

    猜你喜欢
    • 2020-08-03
    • 2016-06-11
    • 2021-02-03
    • 2021-03-08
    • 2019-04-29
    • 2021-09-08
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    相关资源
    最近更新 更多