如何用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.
相关产品推荐
相关产品推荐

