京公网安备 11010802034615号
经营许可证编号:京B2-20210330
作者:潮汐
来源:Python 技术
上一篇文章分享了的基本用法,但是在绘制数据的过程中难免需要给数据制作图表,根据各种数据需求绘制出不同的图表,今天的文章主要讲解 python xlsxwriter 画图模块 Chart 类的用法实例分析。
Chart 类是 XlsxWriter 模块中图表组件的基类,支持的图表类型包括面积、条形图、柱形图、折线图、饼图、散点图、股票和雷达等。
一个图表对象是通过 Workbook(工作簿)的 add_chart() 方法创建,通过 {type,'图表类型'}字典参数指定图表的类型,语句如下:
chart = workbook.add_chart({type, 'column'}) #创建一个 column(柱形)图表
然后再通过 Worksheet(工作表)的insert_chart()方法插入到指定位置,语句如下:
worksheet.insert_chart('A5', chart) #在A5单元格插入图表
Chart 类是 XlsxWriter 模块中图表组件的基类,支持的图表类型包括面积、条形图、柱形图、折线图、饼图、散点图、股票和雷达等
使用 XlsxWriter 绘制柱状图详细代码如下:
import xlsxwriter def chart_column(): workbook = xlsxwriter.Workbook('chart.xlsx')
worksheet = workbook.add_worksheet() # Create a new Chart object. chart = workbook.add_chart({'type': 'column'}) # Write some data to add to plot on the chart. data = [
[13, 25, 9, 14, 35],
[12, 14, 16, 18, 20],
[13, 16, 19, 22, 25],
]
worksheet.write_column('A1', data[0]) # 按列插入 worksheet.write_column('B1', data[1])
worksheet.write_column('C1', data[2]) # Configure the chart. In simplest case we add one or more data series. chart.add_series({'values': '=Sheet1!$A$1:$A$5'})
chart.add_series({'values': '=Sheet1!$B$1:$B$5'})
chart.add_series({'values': '=Sheet1!$C$1:$C$5'}) # Insert the chart into the worksheet. worksheet.insert_chart('A7', chart)
workbook.close() if __name__ == '__main__':
chart_column()
绘制图片输出结果如下:
XlsxWriter 绘制柱状图叠图详细方法详见如下代码:
def charts_column1():
workbook = xlsxwriter.Workbook("expense02.xlsx") # 添加一个Sheet页,不添写名字,默认为Sheet1 worksheet = workbook.add_worksheet() # 准备数据 headings = ["姓名", "语文", "数学"]
data = [["张三", 78, 60], ["李四", 98, 89], ["王五", 88, 100]] # 样式 head_style = workbook.add_format({"bold": True, "bg_color": "yellow", "align": "center", "font": 13}) # 写数据 worksheet.write_row("A1", headings, head_style) for i in range(0, len(data)):
worksheet.write_row("A{}".format(i + 2), data[i]) # 添加柱状图叠图子类型 chart2 = workbook.add_chart({"type": "column", "subtype": "stacked"})
chart2.add_series({ "name": "=Sheet1!$B$1", "categories": "=Sheet1!$A$2:$a$4", "values": "=Sheet1!$B$2:$B$4" })
chart2.add_series({ "name": "=Sheet1!$C$1", "categories": "=Sheet1!$A$2:$a$4", "values": "=Sheet1!$C$2:$C$4" })
chart2.set_title({"name": "叠图子类型"})
chart2.set_x_axis({"name": "姓名"})
chart2.set_y_axis({"name": "成绩"})
chart2.set_style(12) # 插入图表 worksheet.insert_chart("B7", chart2) # 关闭EXCEL文件 workbook.close()
绘制结果如下:
XlsxWriter 绘制饼图只需要新建一个工作表后添加饼图样式即可,详细绘制方式如下:
def chart_pie():
workbook = xlsxwriter.Workbook("expense03.xlsx") # 添加一个Sheet页,不添写名字,默认为Sheet1 worksheet = workbook.add_worksheet() # 准备数据 headings = ["姓名", "语文", "数学"]
data = [["张三", 78, 60], ["李四", 98, 89], ["王五", 88, 100]] # 样式 head_style = workbook.add_format({"bold": True, "bg_color": "yellow", "align": "center", "font": 13}) # 写数据 worksheet.write_row("A1", headings, head_style) for i in range(0, len(data)):
worksheet.write_row("A{}".format(i + 2), data[i]) # 添加饼图 chart3 = workbook.add_chart({"type": "pie"})
chart3.add_series({ # "name":"饼形图", "categories": "=Sheet1!$A$2:$A$4", "values": "=Sheet1!$B$2:$B$4", # 定义各饼块的颜色 "points": [
{"fill": {"color": "yellow"}},
{"fill": {"color": "blue"}},
{"fill": {"color": "red"}}
]
})
chart3.set_title({"name": "饼图成绩单"})
chart3.set_style(3) # 插入图表 worksheet.insert_chart("B7", chart3) # 关闭EXCEL文件 workbook.close()
绘制图片结果如下:
今天的文章讲解了神器 xlsxwriter 操作 Excel 绘制柱状图、饼图、柱状图叠图等图形详细过程,当然还有更多关于 xlsxwriter 有趣的知识点还未分享,感兴趣的朋友们可以试试,希望对大家有所帮助。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
财务顾问这个岗位名称,在不同机构里指向的工作并不相同。在银行、券商、保险和第三方财富机构中,理财顾问方向的核心任务是理解 ...
2026-10-21财务新人最容易走的一条弯路,是入职没多久就急着考证、学Python、报数据分析班,却连凭证科目还经常配错、三张表的勾稽关系说不 ...
2026-10-21财务岗位想快速提升职业知识,最常见的误区是把“学知识”理解成“读准则、背税法、刷课程”。准则和税法当然要懂,但脱离岗位任 ...
2026-10-21财务分析师想快速提升个人知识,关键不是把课程清单拉得更长,而是先看清自己当前岗位最常交付什么、卡在哪一层,再按“财务专业 ...
2026-10-21财务分析师提升技能,最容易走的弯路是“工具先行”:听说SQL重要就去学SQL,看到可视化流行就报图表课,学完却发现日常工作用不 ...
2026-10-21财会行业“学什么最有用”,不能只看课程目录长短,而要看三项标准:能否直接用于日常记账、报表和申报;能否减少核对差错与返工 ...
2026-10-21数据敏感度常被说成一种“感觉”:老会计扫一眼报表就知道哪里不对,新人对着同一张表却看不出问题。这种感觉并非天赋,而是可以 ...
2026-10-21HRBP的“职场素养”不是泛泛的礼貌得体,而是三件事的叠加:在组织里守住职业行为边界,在业务对话中讲得清判断,在关键场合拿得 ...
2026-10-21一、为什么需要把多个指标合并成一个 在业务分析和综合评价中,我们经常面对这样的困境:要给一家门店打分,它的销售额达标但利 ...
2026-10-21APP运营每天面对的问题很具体:新增为什么掉了、注册到首单在哪一步漏人、版本更新后次日留存有没有变化、活动拉来的人是不是只 ...
2026-10-21一、什么时候用卡方检验 在医学、生物、社会学和商业实验中,经常要比较"观察组"和"对照组"两组人群在某个分类指标上有没有差异 ...
2026-10-21APP运营的“通用知识”,不是把产品、市场、数据的课程目录各抄一遍,而是能支撑日常任务反复使用的一套工作常识。判断一项知识 ...
2026-10-21财务分析师提升技能,最容易走的弯路是“工具先行”:听说SQL重要就去学SQL,看到可视化流行就报图表课,学完却发现日常工作用不 ...
2026-10-21核心资源推荐 CDA教材(2025):https://edu.cda.cn/goods/show/3151CDA模拟题(2025):https://edu.cda.cn/goods/show/2845CD ...
2026-10-21一、为什么要通过实例学SQL SQL是数据从业者最基础也最高频的工具。很多人学过SELECT、WHERE、GROUP BY,但一到真实业务里就写不 ...
2026-10-20excel常见函数 一、8个核心数据清洗函数 1. TRIM:一键清除多余空格(最常用) 作用:仅保留文本中"单词/字符之间的1个空格", ...
2026-10-20会计岗位的“通用技能”常被说得太泛。更实用的界定是两层:一层是跨岗位可迁移的能力,比如沟通、业务理解、数据呈现;另一层是 ...
2026-10-20核心资源推荐 CDA教材(2025):https://edu.cda.cn/goods/show/3151CDA模拟题(2025):https://edu.cda.cn/goods/show/2845CD ...
2026-10-20一、为什么指标体系需要"先定义、后建设" 在企业数据治理和数据分析实践中,几乎每个团队都遇到过这样的场景:业务部门说"这个月 ...
2026-10-19一、为什么需要客户分群 在用户运营和客户关系管理中,最忌讳的就是"一刀切"——对所有客户发同样的券、推同样的活动、说同样的 ...
2026-10-19