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

如何用Pandas修改柱状图X轴标签为「分类:低热量菜品名」格式

解决方案

你可以通过获取绘图的轴对象,自定义X轴标签内容来实现需求。核心是利用筛选出的LowestCalMeals数据,将Category和Item字段拼接成目标格式的标签,再替换原有X轴标签。

修改后的完整代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 上传文件
from google.colab import files
uploaded = files.upload()

# 读取数据:移除parse_dates=True(Item列不是日期格式),取消index_col避免索引混淆
data = pd.read_csv("/content/example1.csv")

# 找出每个分类下热量最低的菜品
LowestCal = data.groupby('Category')['Calories'].idxmin()
LowestCalMeals = data.loc[LowestCal]

# 绘图并获取轴对象
ax = LowestCalMeals.plot.bar(x='Category', y='Calories', rot=90)

# 构造自定义X轴标签:分类名称:对应菜品名称
custom_labels = [f"{cat}: {item}" for cat, item in zip(LowestCalMeals['Category'], LowestCalMeals['Item'])]
# 替换原有X轴标签
ax.set_xticklabels(custom_labels, rotation=90)

plt.xlabel('分类与最低热量菜品')
plt.show()

# 测试输出
ItemList = LowestCal.tolist()
print(ItemList)

关键步骤说明:

  1. 获取轴对象:调用plot.bar()时将返回值赋值给ax,方便直接对绘图轴进行自定义操作。
  2. 拼接自定义标签:通过列表推导式,把每个分类的名称和对应最低热量菜品名称拼接成你需要的格式。
  3. 替换标签:用ax.set_xticklabels()替换原有X轴标签,保留rotation=90确保标签垂直显示不重叠。

另外,原代码中parse_dates=True属于多余设置(Item列并非日期类型),建议移除避免潜在问题;如果不需要将Item设为索引,取消index_col=2会让后续数据操作更直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:24:51