openpyxl中percentStacked图表Y轴显示0-100的设置方法
解决openpyxl百分堆叠条形图Y轴整数百分比显示问题
直接通过设置Y轴的数字格式就能实现需求,无需修改原始数据或手动生成轴值,具体方法如下:
核心逻辑:percentStacked模式下Y轴的底层数值是0-1的小数,只需给Y轴指定百分比格式,Excel会自动完成0-1到0%-100%的转换显示。
具体代码示例
from openpyxl import Workbook from openpyxl.chart import BarChart, Reference # 准备示例数据 wb = Workbook() ws = wb.active data = [ ["类别", "系列1", "系列2", "系列3"], ["A", 10, 20, 70], ["B", 30, 40, 30], ["C", 50, 25, 25], ] for row in data: ws.append(row) # 创建百分堆叠条形图 chart = BarChart() chart.type = "bar" chart.grouping = "percentStacked" chart.overlap = 100 # 关联数据与分类 values = Reference(ws, min_col=2, min_row=1, max_col=4, max_row=4) categories = Reference(ws, min_col=1, min_row=2, max_row=4) chart.add_data(values, titles_from_data=True) chart.set_categories(categories) # 关键:设置Y轴数字格式为整数百分比 y_axis = chart.y_axis y_axis.number_format = "0%" # 若需保留1位小数可改为"0.0%" # 插入图表并保存 ws.add_chart(chart, "E1") wb.save("percent_stacked_bar.xlsx")
设置完成后,Y轴会直接显示0、20、40…100这类整数百分比,完全匹配需求。
内容的提问来源于stack exchange,提问作者gcl8a
相关产品推荐
相关产品推荐

