You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pandas和matplotlib绘制含指定与共享索引的子图

解决方案

直接按机型、来源维度分组聚合均值后,创建子图分别绘制即可,完整可运行代码如下:

import matplotlib.pyplot as plt
import pandas as pd

# 原始数据集
d={
    'modele':[330,550,550,330,550,550,550],
    'source':['client','prod','prod','prod','client', 'prod', 'prod'],
    'duree':[200,300,400,80,30,800,20]
}
df = pd.DataFrame(d)

# 按机型、来源分组计算时长均值,重构为方便取数的结构
mean_df = df.groupby(['modele', 'source'])['duree'].mean().unstack()

# 初始化1行2列的子图
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10,4))

# 550机型子图:client红柱、prod绿柱
ax1.bar(mean_df.loc[550].index, mean_df.loc[550].values, color=['red', 'green'])
ax1.set_title('Modele 550')
ax1.set_ylabel('Average Duree (seconds)')

# 330机型子图,规则同上
ax2.bar(mean_df.loc[330].index, mean_df.loc[330].values, color=['red', 'green'])
ax2.set_title('Modele 330')

plt.tight_layout()
plt.show()

关键步骤说明:

  • groupby(['modele', 'source'])['duree'].mean() 先完成两个维度的均值计算,unstack()将来源维度转为列,方便直接按机型索引取对应来源的均值
  • 绘制柱形时直接指定颜色顺序为红、绿,对应client、prod两个来源的数值
  • tight_layout()自动调整子图间距,避免标题、标签重叠。

内容的提问来源于stack exchange,提问作者TheBigBot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 07:51:19