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

如何用openpyxl修改Excel图表横轴与纵轴的交叉位置

使用openpyxl调整散点图横轴与纵轴的交叉位置

当散点图的y轴数据全部为负值时,Excel默认会将横轴(x轴)放置在y轴的最大值位置(图表顶部)。要将横轴固定在y=-9999的位置(图表底部),只需通过openpyxl配置纵轴的交叉参数即可。

修改后的完整代码

import random
import openpyxl
from openpyxl.chart import ScatterChart, Reference, Series

wb = openpyxl.Workbook()
ws = wb.active
for r,val in enumerate([1,2,3,4,5,6,7,8,9,10]):
    ws.cell(row=r+1, column=1, value=val)
    ws.cell(row=r+1, column=2, value=-1*random.random()*val)

chart1 = ScatterChart()
xvalues1 = Reference(ws, min_col=1, min_row=1, max_row=10)
yvalues1 = Reference(ws, min_col=2, min_row=1, max_row=10)
series1 = Series(values = yvalues1, xvalues = xvalues1)
chart1.series.append(series1)

# 核心设置:指定横轴与纵轴的交叉位置
y_axis = chart1.y_axis
y_axis.crosses = "fixed"  # 设置为固定值交叉
y_axis.crossesAt = -9999  # 交叉点的y值

ws.add_chart(chart1, "B11")
wb.save('test.xlsx')

关键设置说明

  • y_axis.crosses = "fixed":取消Excel自动选择交叉位置的逻辑,改用自定义固定值。
  • y_axis.crossesAt = -9999:将交叉点的y值设置为-9999,该值需小于所有y数据的最小值,确保横轴显示在图表底部。

效果说明

  • 原效果:横轴因y值全为负值,自动显示在图表顶部
  • 修改后效果:横轴固定在y=-9999位置,显示在图表底部(对应Excel GUI中“坐标轴交叉”选择“固定值”并输入-9999的操作)

内容的提问来源于stack exchange,提问作者Paul K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:53:33