![](/img/trans.png)
[英]Getting Pandas Dataframe in correct format for Seaborn swarmplot
[英]Seaborn swarmplot of grouped dataframe
当我有一个数据帧时喜欢这里:
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"])
不幸的是,seaborn swarmplot没有groupby关键字。 那么,我怎样才能将这个数据框架作为分组的swarmplots? 我想要的只是用swarmplots而不是boxplots显示的相同数字。 我玩了groupby对象本身:
df.groupby(by="Cluster")
到目前为止,我无法说服seaborn接受它。
我不认为你需要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")
得到:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.