【发布时间】:2021-10-29 11:19:09
【问题描述】:
我想在一个主图中绘制 4 个不同的散点图。数据来自从 .csv 文件读取的分组数据帧。初始数据框如下所示:
df.to_csv("File.csv", index=False)
df:
| Category1 | Category2 | X | Y | |
|---|---|---|---|---|
| 0 | A | x | 4 | 5.1 |
| 1 | B | x | 3 | 4.2 |
| 2 | A | y | 2 | 7.1 |
| 3 | A | z | 9 | 6.1 |
| ... | ... | ... | ... | ... |
| 97 | A | z | 4 | 5.1 |
| 98 | A | w | 3 | 4.2 |
| 99 | B | y | 2 | 7.1 |
| 100 | B | z | 9 | 6.1 |
如您所见,category1 只有两种值(A,B),而 category2 有 4 种值(x,y,z,w)。 X 和 Y 值是随机的,仅用于显示目的。
分组的df是使用以下命令创建的:
dfGrouped = df.groupby(["Category1 ","Category2"])
dfGrouped:
| X | Y | ||
|---|---|---|---|
| A | x | 4 | 5.1 |
| A | 7 | 9.1 | |
| y | 3 | 4.2 | |
| 3 | 4.2 | ||
| 3 | 4.2 | ||
| z | 2 | 7.1 | |
| w | 9 | 6.1 | |
| ... | ... | ... | ... |
| B | x | 4 | 5.1 |
| y | 3 | 4.2 | |
| z | 2 | 7.1 | |
| 2 | 7.1 | ||
| w | 9 | 6.1 |
我尝试单独绘制它们,但没有成功:
fig, ax = plt.subplots(figsize=(8, 6))
ax.margins(0.05)
for name, group in dfGrouped:
ax.plot(group.X, group.Y, marker='o', linestyle='', ms=2, label=name)
我什至尝试使用 get_group 调用群组,但没有成功。
dfGrouped= dfGrouped.get_group(("A","x"))
有没有办法在一个主图中绘制 4 个不同的散点图(基于“category2”:x、y、z、w),每个图包含 2 个具有 2 种不同颜色的集合值(基于“类别 1":A、B)?
【问题讨论】:
-
您有兴趣为每个组绘制哪些变量? X 和 Y?
-
@liorr 是正确的!
标签: python pandas dataframe plot group-by