xlwings插入图表到EXCEL

明俊数据分析 2024-02-23 02:40:04

Python生成的图表插入到EXCEL有多个包多个方式可用,但涉及到python与excel间的联动交互就不得不提xlwings。Xlwings把图表插入EXCEL有两种主要的方式:一是把matplotlib生成的fig对象插入到工作表,二是直接引用数据在EXCEL工作表中做图。今天我们主要介绍第二种。请看以下详细示例代码:

import xlwings as xw# 创建示例数据data = { "月份": ["1月", "2月", "3月", "4月", "5月", "6月"], "销售额": [100, 120, 140, 160, 180, 200]}# 创建一个新的Excel工作簿wb = xw.Book()sheet = wb.sheets['Sheet1']# 写入数据到工作表sheet.range('A1').value = ["月份", "销售额"]sheet.range('A2').value = list(zip(data["月份"], data["销售额"]))# 创建折线图chart = sheet.charts.add(left=sheet.range('A8').left, top=sheet.range('A8').top, width=400, height=300)chart.set_source_data(sheet.range('A1:B7'))chart.chart_type = 'line'# 设置折线图的标题和坐标轴chart.api[1].SetElement(2) # 设置标题chart.api[1].ChartTitle.Text = "月度销售额"chart.api[1].Axes(1).HasTitle = Truechart.api[1].Axes(1).AxisTitle.Text = "月份"chart.api[1].Axes(2).HasTitle = Truechart.api[1].Axes(2).AxisTitle.Text = "销售额"# 保存并关闭工作簿wb.save('sales_data.xlsx')wb.close()

这段代码中,sheet.charts.add()函数的参数left和top被设置为A8单元格的左上角坐标,而width和height分别被设置为400和300,以满足对图表位置和大小的要求。

代码中chart.chart_type 属性用于设置Excel图表的类型。这些类型对应于Excel中可用的各种图表样式。除了 line(折线图)以外,还有许多其他类型的图表可供选择。以下是一些常见的图表类型:

Column - 柱形图Bar - 条形图Pie - 饼图Area - 面积图Scatter - 散点图XY (Scatter) - XY(散点)图Stock - 股价图Radar - 雷达图Doughnut - 环形图Bubble - 气泡图Surface - 表面图Cone - 圆锥图Cylinder - 圆柱图Pyramid - 金字塔图

这些图表类型在不同版本的Excel中可能会略有不同,且xlwings的实现可能会根据Excel的版本和配置有所不同。你可以根据数据的特性和你想要传达的信息选择最合适的图表类型。在实际应用中,可能需要在Excel中尝试不同的图表类型,以找到最适合你数据展示需求的那一种。

0 阅读:0

明俊数据分析

简介:感谢大家的关注