python - 分组数据帧的 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"])
不幸的是 seaborn swarmplot 没有 groupby 关键字。那么,我怎样才能方便地将这个数据框绘制为分组的 swarmplots 呢?我想要与仅使用 swarmplots 而不是箱线图显示的相同数字。我玩弄了 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")
并得到:
推荐阅读
- google-secret-manager - Google Secret Manager - 可以用于存储 API 用户的用户名和密码吗?
- android - 如何在 Embarcadero RAD Studio 10.3.3 中调试 android 64 位应用程序成为可能?
- python - 如何创建一个也使用 PyGame 库的可执行 (.exe) Python 程序
- php - 关闭选项卡后会话正在破坏 - 社交名流 Laravel
- f# - 在 F# 中扩展函数
- python - 如何访问作为另一个类中方法的输入的变量?
- mapbox - 如何编写一个考虑缩放、特征状态和数据驱动样式的 Mapbox 绘制表达式?
- java - 在字节缓冲区中将字节转换为整数
- html - 如何在不提交的情况下触发表单输入模式验证?
- javascript - Mongoose 验证错误:首先:需要路径 `first`。最后:需要路径`last`。”