为了账号安全,请及时绑定邮箱和手机立即绑定

分组数据框的 Seaborn swarmplot

分组数据框的 Seaborn swarmplot

眼眸繁星 2021-09-11 21:00:48
当我在这里有一个像这样的数据框时:import pandas as pdimport seaborn as snsimport randomrandom.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"])这给了我这样的东西:不幸的是,seaborn swarmplot 没有 groupby 关键字。那么,我怎样才能方便地将此数据框绘制为分组的群图?我想要与仅使用群图而不是箱线图显示的相同的图。我玩弄了 groupby 对象本身:df.groupby(by="Cluster")到目前为止,我无法说服 seaborn 接受它。
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

我认为您不需要groupby- 您只需要将集群指定为 x 值,将数据指定为 y:

sns.swarmplot(data=df, x="Cluster", y="Data")

给你:

//img1.sycdn.imooc.com//613ca8a600017f4f05630427.jpg

但是,如果您还有其他类别想要着色,例如


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")

并得到:

//img1.sycdn.imooc.com//613ca8b30001c84d05670426.jpg

查看完整回答
反对 回复 2021-09-11
  • 1 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信