gpt4 book ai didi

python - Seaborn 将 kwargs 传递给 plt.boxplot()

转载 作者:行者123 更新时间:2023-12-01 04:17:31 25 4
gpt4 key购买 nike

我正在尝试使用 Seaborn 创建箱线图和条形图,如 this example 所示。但是,条形图的数据点可能很难在箱线图之上读取。我的目标是拥有一个“开放”箱线图,就像 pandas DataFrame.plot(kind='box') 制作的箱线图一样。请参阅here 。但我仍然想要 Seaborn 的内置分组功能。

我尝试使用 PatchArtist 而不是 Line2D 艺术家。来自 seaborn boxplot documentation ,

kwargs:键、值映射

其他关键字参数在绘制时传递到 plt.boxplot。

但是传递 patch_artist = True 会导致错误:TypeError: boxplot() gets multiple values for keywords argument 'patch_artist'

一个最小的工作示例:

import seaborn as sns
data = sns.load_dataset('tips')
sns.boxplot(x='day', y='total_bill', data=data, **{'notch':True})

上面的示例显示 kwargs 已正确传递给 plt.boxplot()。下面的示例生成 TypeError

import seaborn as sns
data = sns.load_dataset('tips')
sns.boxplot(x='day', y='total_bill', data=data, **{'patch_artist':True})

patch_artist 是生成开放箱线图的最佳方法吗?如果是这样,我如何将它与seaborn一起使用?

最佳答案

事实证明,seaborn 返回它刚刚生成的子图轴。我们可以直接为其创建的艺术家设置属性。

一个最小的例子:

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset('tips')

ax = sns.boxplot(x='day', y='total_bill', data=data)

plt.setp(ax.artists, alpha=.5, linewidth=2, fill=False, edgecolor="k")

sns.stripplot(x='day', y='total_bill', data=data, jitter=True, edgecolor='gray')

这让我们可以单独操作每个补丁,同时仍然使用 sns.boxplot() 中的 hue 变量为我们对数据进行分组。最后,stripplot 覆盖层位于框的顶部。

关于python - Seaborn 将 kwargs 传递给 plt.boxplot(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34163622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com