如何使用XlsxWriter去除Excel图表中的Serie1图例以节省空间?
移除XlsxWriter生成图表的Serie1图例,节省水平空间
要移除XlsxWriter生成图表中的默认Serie1图例,只需调用图表对象的set_legend()方法并设置图例不可见即可。这个方法可以直接隐藏所有图例,完美解决节省水平空间的需求,且能批量应用到所有图表上。
修改后的代码示例
df.to_excel(writer, sheet_name='Year_sheet', startrow=1, header=False, index=False) workbook = writer.book worksheet1 = writer.sheets['Year_sheet'] chart_weight = workbook.add_chart({'type': 'line'}) chart_weight.add_series({'values': '=Year_sheet!$B$2:$B$13'}) chart_weight.set_x_axis({'name': 'Months'}) chart_weight.set_title({'name': 'Gross tonnage'}) # 隐藏图例,去掉Serie1标签 chart_weight.set_legend({'visible': False}) worksheet1.insert_chart('A16', chart_weight) writer.save()
批量处理多个图表
如果要生成多个图表并统一移除图例,可以把图表配置逻辑封装,或者在循环创建图表时统一调用set_legend():
# 示例:批量创建3个折线图并隐藏图例 for i in range(3): chart = workbook.add_chart({'type': 'line'}) chart.add_series({'values': f'=Year_sheet!${chr(66+i)}$2:${chr(66+i)}$13'}) chart.set_x_axis({'name': 'Months'}) chart.set_title({'name': f'Chart {i+1}'}) chart.set_legend({'visible': False}) # 统一隐藏图例 worksheet1.insert_chart(f'A{16 + i*10}', chart)
内容的提问来源于stack exchange,提问作者Jon Helge Einås
相关产品推荐
相关产品推荐

