分组数据框的 Seaborn swarmplot

当我在这里有一个像这样的数据框时:


import pandas as pd

import seaborn as sns

import random


random.seed(0)


df = pd.DataFrame({"Data":[random.random() for i in range(100)], "Cluster":[random.randint(0,10) for i in range(100)]})

我可以轻松地将带有 seaborn 的集群绘制为箱线图:


sns.boxplot(df["Data"], groupby=df["Cluster"])

这给了我这样的东西:

http://img4.mukewang.com/613ca8960001920307540500.jpg

不幸的是,seaborn swarmplot 没有 groupby 关键字。那么,我怎样才能方便地将此数据框绘制为分组的群图?我想要与仅使用群图而不是箱线图显示的相同的图。我玩弄了 groupby 对象本身:

df.groupby(by="Cluster")

到目前为止,我无法说服 seaborn 接受它。


眼眸繁星
浏览 162回答 1
1回答

呼唤远方

我认为您不需要groupby- 您只需要将集群指定为 x 值,将数据指定为 y:sns.swarmplot(data=df, x="Cluster", y="Data")给你:但是,如果您还有其他类别想要着色,例如df = pd.DataFrame({"Data":[random.random() for _ in range(100)],                   "Cluster":[random.randint(0,10) for _ in range(100)],                   "Category": [random.choice(("A", "B")) for _ in range(100)]})然后,您可以hue像这样使用参数:sns.swarmplot(data=df, x="Cluster", y="Data", hue="Category")并得到:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python