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

使用openpyxl指定坐标选取数据绘制折线图的问题咨询

问题原因

你当前的代码仅指定了Y轴的身高数值范围,没有单独绑定X轴对应的年份数据,所以图表默认将行序号作为X轴刻度,和预期不符。

实现方法

openpyxl 选取指定坐标范围的数据统一通过 Reference 类实现,你需要额外创建X轴年份的Reference对象,调用set_categories()方法绑定到图表即可,修正后的代码如下:

from openpyxl.chart import LineChart, Reference
chart = LineChart()
chart.title='Average height'
chart.y_axis.title = 'Height'
chart.x_axis.title = 'Year'

# 定义X轴年份数据范围,示例中假设年份存储在第6列,数据行范围为2~102行,可根据实际表格调整参数
x_data = Reference(working_sheet, min_col=6, min_row=2, max_row=102)
# Y轴身高数据范围
values = Reference(working_sheet, min_col = 7, min_row = 1, max_col=9, max_row = 102)
chart.add_data(values, titles_from_data=True)
# 绑定X轴数据到图表
chart.set_categories(x_data)

working_sheet.add_chart(chart, 'K2')

Reference 参数说明

  • min_col/max_col:要选取数据的起始列、结束列序号,A列对应1,B列对应2,以此类推
  • min_row/max_row:要选取数据的起始行、结束行序号
    如果选取的是单列/单行数据,无需填写max_col/max_row参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:39:02