首页 > 解决方案 > 如何为数据框中的每组数据创建带有标题的子图

问题描述

假设我有一个定义如下的数据框:

cat = ['games','games','home','home','home','food','food','food','food','food']
dates = ['2024-07-01','2021-31-1', '2021-04-1', '2021-05-1','2021-02-2', '2021-05-1','2021-01-2','2021-14-2','2021-03-3','2021-11-4']
nums = [137, 338, 52, 144, 100, 5, 72, 400, 100, 99]

df = pd.DataFrame({'cat':cat, 'dates':dates, 'nums':nums})

我想绘制每个cat- 例如分别创建一个numsdatesfor gameshome和的图food

我通过做得到它df.groupby('cat').plot(x = 'date'),这很有效,但我无法在每个子图上获得标题。或者有没有更简单的方法来实现这一点,并让每个情节标题都是名字cat

标签: pythonpandasmatplotlib

解决方案


您可以遍历组,这使您可以完全控制每个绘图的轴、标题等

import matplotlib.pyplot as plt

for key, gp in df.groupby('cat'):
    gp.plot('dates')
    plt.title(key)

推荐阅读