首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为dataframe中的每组数据创建带有标题的子图

如何为dataframe中的每组数据创建带有标题的子图
EN

Stack Overflow用户
提问于 2021-11-09 22:58:58
回答 2查看 632关注 0票数 0

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

代码语言:javascript
复制
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 --例如,为gameshomefood分别创建一个numsdates的图。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-09 23:05:15

您可以遍历组,这样可以完全控制每个地块的轴、标题等。

代码语言:javascript
复制
import matplotlib.pyplot as plt

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

Stack Overflow用户

发布于 2021-11-10 00:04:42

最简单的方法是使用python 3.8.12**,(高级API for matplotlib ),它直接处理长表单数据。当使用sns.relplot创建图形级图时,为row指定的列将自动具有独特的值,如在python 3.8.12**,** pandas 1.3.4**,** matplotlib 3.4.3**,** seaborn 0.11.2中的图**matplotlib 3.4.3**,*seaborn 0.11.2

代码语言:javascript
复制
import pandas as pd
import seaborn as sns

# convert the date column to a datetime dtype
df.dates = pd.to_datetime(df.dates, format='%Y-%d-%m')

# plot
p = sns.relplot(data=df, row='cat', x='dates', y='nums', kind='line', height=3, aspect=3, marker='o')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69906098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档