当我在这里有一个像这样的数据框时: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")
给你:
但是,如果您还有其他类别想要着色,例如
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")
并得到:
添加回答
举报
0/150
提交
取消