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

如何用Matplotlib绘制Excel中2020年1月1日三人的体重柱状图

嗨,这个需求很容易实现,我来给你一步步拆解,保证你能快速画出想要的体重对比柱状图!

实现步骤

第一步:安装必要依赖

首先得确保你装了处理Excel和绘图的工具库,打开终端输入以下命令:

pip install pandas matplotlib openpyxl

(openpyxl是用来读取.xlsx格式Excel的,现在主流Excel都用这个格式啦)

第二步:根据你的Excel结构选择对应代码

我整理了两种常见的Excel数据结构,你对照自己的文件选就行:

情况一:Excel列对应个体,行对应日期

比如你的表格长这样:

日期个体A个体B个体C
2020-01-01657258
............

完整代码:

import pandas as pd
import matplotlib.pyplot as plt

# 1. 读取Excel文件
df = pd.read_excel('weight_data.xlsx', sheet_name='Sheet1', engine='openpyxl')

# 2. 把日期列转换成标准日期格式,方便筛选
df['日期'] = pd.to_datetime(df['日期'])

# 3. 筛选2020年1月1日的数据
target_date = pd.to_datetime('2020-01-01')
selected_data = df[df['日期'] == target_date]

# 4. 提取个体名称和对应的体重
individuals = ['个体A', '个体B', '个体C']  # 这里换成你Excel里的实际列名
weights = selected_data[individuals].values.flatten()

# 5. 绘制柱状图
plt.style.use('seaborn-v0_8')  # 用个好看的风格,不想用可以删掉这行
plt.bar(individuals, weights, color=['#FF6B6B', '#4ECDC4', '#45B7D1'])

# 添加标题和坐标轴标签,用中文也完全没问题
plt.title('2020年1月1日三位个体体重对比', fontsize=14)
plt.xlabel('个体名称', fontsize=12)
plt.ylabel('体重(kg)', fontsize=12)

# 在每个柱子上方显示具体体重数值,更直观
for i, weight in enumerate(weights):
    plt.text(i, weight + 0.5, str(weight), ha='center', fontsize=10)

# 调整布局,防止标签被截断
plt.tight_layout()

# 显示图表
plt.show()

# 如果需要保存图片到本地,取消下面这行注释就行
# plt.savefig('体重对比图.png', dpi=300)

情况二:Excel每行是一条记录(日期、姓名、体重)

比如你的表格长这样:

日期姓名体重
2020-01-01个体A65
2020-01-01个体B72
2020-01-01个体C58
.........

完整代码:

import pandas as pd
import matplotlib.pyplot as plt

# 1. 读取Excel文件
df = pd.read_excel('weight_data.xlsx', sheet_name='Sheet1', engine='openpyxl')

# 2. 转换日期格式
df['日期'] = pd.to_datetime(df['日期'])

# 3. 筛选目标日期的数据
target_date = pd.to_datetime('2020-01-01')
selected_data = df[df['日期'] == target_date]

# 4. 提取姓名和体重
individuals = selected_data['姓名'].tolist()
weights = selected_data['体重'].tolist()

# 5. 绘图部分和情况一完全一样
plt.style.use('seaborn-v0_8')
plt.bar(individuals, weights, color=['#FF6B6B', '#4ECDC4', '#45B7D1'])

plt.title('2020年1月1日三位个体体重对比', fontsize=14)
plt.xlabel('个体名称', fontsize=12)
plt.ylabel('体重(kg)', fontsize=12)

for i, weight in enumerate(weights):
    plt.text(i, weight + 0.5, str(weight), ha='center', fontsize=10)

plt.tight_layout()
plt.show()

一些小提示

  • 如果你的Excel日期格式不是YYYY-MM-DD,比如是2020/01/01,可以在转换日期时指定格式:df['日期'] = pd.to_datetime(df['日期'], format='%Y/%m/%d')
  • 要是运行时提示找不到文件,要么把Excel和Python脚本放在同一个文件夹,要么写完整的文件路径(比如C:/Users/你的用户名/Documents/weight_data.xlsx)
  • 柱子颜色、字体大小这些都可以根据自己的喜好随便改,比如把color换成你喜欢的RGB值或者颜色名称

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 15:52:29