情况
我有以下熊猫数据集:

|user_id|total|is_fat|
|-------|-----|------|
|1      |100  |1     |
|2      |150  |0     |
|3      |400  |1     |
|4      |500  |1     |
|5      |10   |0     |


其中total的元素是整数,而is_fat的元素是字符串。

我用df表示上述数据集。

然后跑

import seaborn as sos
sns.swarmplot(x = 'total', y ='is_fat', data = df)


现在我期望的图形就像
python - Seaborn swarmplot中的水平图-LMLPHP

问题
但是,输出图如下:

python - Seaborn swarmplot中的水平图-LMLPHP

为什么?

搜索
如果我将“ 1”转换为“ fat”,将“ 0”转换为“ not_fat”,
然后我得到预期的图形。

最佳答案

我已经模拟了一些数据,并将is_fat更改为分类,如下所示:

import seaborn as sns
import pandas as pd
import numpy as np

df = pd.DataFrame({"total":abs(np.random.randn(100)), "is_fat": [1,0]*50})
df.is_fat = df.is_fat.astype("category")
sns.swarmplot(x = 'total', y ='is_fat', data = df)



这产生了下图:
python - Seaborn swarmplot中的水平图-LMLPHP

我希望这有帮助。

09-19 23:07