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

使用openpyxl生成转置数据的2D面积图表遇问题求助

解决转置数据生成2D面积图的问题

当数据是转置格式(系列按行排列、类别按列排列)时,需要调整Reference的选取范围,并设置add_data的from_rows参数为True,让openpyxl按行识别数据系列。

调整后的代码示例

假设你的数据结构匹配转置格式:

  • 第1行:所有类别名称(列2到列7)
  • 第2行:系列1名称(列1)+ 对应类别的数据(列2到列7)
  • 第3行:系列2名称(列1)+ 对应类别的数据(列2到列7)

修改后的代码如下:

from openpyxl.chart import AreaChart, Reference

# ws为你的工作表对象
cats = Reference(ws, min_col=2, min_row=1, max_col=7)  # 选取第1行的类别区域
data = Reference(ws, min_col=1, min_row=2, max_row=3, max_col=7)  # 选取包含系列名和数据的行区域

chart = AreaChart()
# 开启from_rows=True,让程序按行读取系列数据
chart.add_data(data, titles_from_data=True, from_rows=True)
chart.set_categories(cats)

# 将图表插入工作表指定位置
ws.add_chart(chart, "A10")

关键调整说明

  • from_rows=True:默认openpyxl按列读取数据系列,转置后系列在行,必须开启这个参数才能正确识别每行作为一个独立数据系列。
  • 类别范围cats:指向转置后存储所有类别名称的单元格区域(即原数据的表头行)。
  • 数据范围data:包含每个系列的名称和对应数据,titles_from_data=True会自动将每行的第一列内容设为系列标题。

问题排查

如果图表仍显示异常,可以检查:

  • cats是否完整覆盖了所有类别单元格
  • data是否包含了所有系列的名称和对应数据
  • 确认from_rows参数是否正确设置为True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:05:42