猿问

无法使用 matplotlib 重新创建 catplot

我有一个熊猫数据框:


df = pd.DataFrame(data = {'X':['Jason', 'Molly', 'Tina', 'Jason', 'Tina', 'Tina'], 'Y': [13,19,52,14,12,12]})


       X   Y

0  Jason  13

1  Molly  19

2   Tina  52

3  Jason  14

4   Tina  12

5   Tina  12

我想在 matplotlib 中重新创建 seaborn 库的 catplot 功能,例如:


sns.catplot(x='X', y='Y', kind="box", data=df)

所以我这样做:


plt.boxplot(df.X, df.Y)

但这不起作用,我收到一个错误:


TypeError:无法使用灵活类型执行归约


如何在 matplotlib 中获得相同的结果?


我在 matplotlib 中执行此操作,因为使用 seaborn,我必须手动更改 x,并且我想使用 for 循环动态更改 x


开心每一天1111
浏览 128回答 1
1回答

杨__羊羊

没有直接的等价物,因为 seaborn 首先按 x 对数据进行分组。使用 matplotlib 时,您需要手动进行分组,import pandas as pdimport matplotlib.pyplot as pltdf = pd.DataFrame(data = {'X':['Jason', 'Molly', 'Tina', 'Jason', 'Tina', 'Tina'],                          'Y': [13,19,52,14,12,12]})plt.boxplot([col.Y.values for n, col in df.groupby("X")])plt.show()
随时随地看视频慕课网APP

相关分类

Python
我要回答