python - 在不同的子图中绘制不同组的数据框
问题描述
我想在一个主图中绘制 4 个不同的散点图。数据来自从 .csv 文件读取的分组数据帧。初始数据框如下所示:
df.to_csv("File.csv", index=False)
东风:
类别1 | 类别2 | X | 是 | |
---|---|---|---|---|
0 | 一个 | X | 4 | 5.1 |
1 | 乙 | X | 3 | 4.2 |
2 | 一个 | 是的 | 2 | 7.1 |
3 | 一个 | z | 9 | 6.1 |
... | ... | ... | ... | ... |
97 | 一个 | z | 4 | 5.1 |
98 | 一个 | w | 3 | 4.2 |
99 | 乙 | 是的 | 2 | 7.1 |
100 | 乙 | z | 9 | 6.1 |
如您所见,category1 只有两种值(A,B),而 category2 有 4 种值(x,y,z,w)。X 和 Y 值是随机的,仅用于显示目的。
使用以下命令创建了分组的 df:
dfGrouped = df.groupby(["Category1 ","Category2"])
df分组:
X | 是 | ||
---|---|---|---|
一个 | X | 4 | 5.1 |
一个 | 7 | 9.1 | |
是的 | 3 | 4.2 | |
3 | 4.2 | ||
3 | 4.2 | ||
z | 2 | 7.1 | |
w | 9 | 6.1 | |
... | ... | ... | ... |
乙 | X | 4 | 5.1 |
是的 | 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 种不同颜色的值(基于“Category1”:甲,乙)?
解决方案
你可以使用seaborn.relplot
:
import numpy as np
import seaborn as sns
# dummy data
df = pd.DataFrame({'Category1': np.random.choice(['A','B'], size=100),
'Category2': np.random.choice(['w','x', 'y', 'z'], size=100),
'x': np.random.random(size=100),
'y': np.random.random(size=100),
})
# plot
sns.relplot(data=df, x='x', y='y', col='Category2', col_wrap=2, hue='Category1')
输出:
推荐阅读
- javascript - Angular - 每月计算所有日期并返回月份和计数数组
- laravel - 如何从视图中调用 laravel 事件?
- reactjs - 谷歌登录不起作用,并且在反应 js 中没有显示任何错误
- generator - 如何使变量成为出现的百分比?
- arrays - Wordpress 如何从 id 数组中获取一组 post 元值?
- python - 使用 Gensim.Phrases 从单个句子中提取重复的多个单词术语我做错了什么?
- javascript - 如何减少 javascript 事件处理程序中的认知复杂性?
- python - DCGAN 产生噪音但不是预期的结构,有人可以帮我从 DCGAN 中获得正确的结果吗?
- csv - 我正在尝试在 R 编程中使用 5 个单词搜索 100 万行文本的 CSV 文件,并为这些累积分数创建一个列
- xamarin.forms - System.Text.Json.JsonSerializer 的 Xamarin Refit 类型初始化程序引发异常