python 同一笔数据 以第一种group画subplot图,每个图包含第二种group特点并用颜色区分
时间: 2024-01-28 21:04:57 浏览: 53
你可以使用 `matplotlib` 库来绘制 subplot 图,并使用不同的颜色来区分不同的组。假设你有一个名为 `df` 的数据框,其中包含两个分组变量 `group1` 和 `group2`,以及一个数值变量 `value`,那么你可以按照以下方式来绘制 subplot 图:
```python
import matplotlib.pyplot as plt
# 按照 group1 分组
grouped = df.groupby('group1')
# 获取所有可能的 group2 值
group2_values = df['group2'].unique()
# 计算 subplot 图的行数和列数
nrows = 2
ncols = (len(group2_values) + 1) // 2
# 创建 subplot 图
fig, axes = plt.subplots(nrows=nrows, ncols=ncols, figsize=(6*ncols, 4*nrows))
# 绘制每个 subplot 图
for i, (group1_value, group1_df) in enumerate(grouped):
row = i // ncols
col = i % ncols
ax = axes[row, col]
for group2_value in group2_values:
color = 'C{}'.format(group2_value)
group2_df = group1_df[group1_df['group2'] == group2_value]
ax.plot(group2_df['value'], color=color, label=group2_value)
ax.set_title(group1_value)
ax.legend()
```
在这个例子中,我们首先按照 `group1` 分组,然后获取所有可能的 `group2` 值。接下来,我们计算 subplot 图的行数和列数,并创建 `fig` 和 `axes` 对象。在循环中,我们逐个绘制每个 subplot 图。对于每个 subplot 图,我们首先计算它的行号和列号,然后从 `grouped` 中获取对应的数据框。接下来,我们在该图中绘制每个 `group2` 值对应的数据。为了区分不同的组,我们使用了 `C0`、`C1`、`C2` 等不同的颜色,这些颜色是 `matplotlib` 预定义的颜色序列。最后,我们设置子图的标题和图例。
阅读全文