当前位置:   article > 正文

Python 操作 Excel 神器 xlsxwriter 绘图实战!

python xlsxwriter 图表

b19a81e8caf6126ba1703bcd71b0c804.png

文 | 潮汐

来源:Python 技术「ID: pythonall」

94e7a60972af9a388841867d76f20465.png

上一篇文章分享了的基本用法,但是在绘制数据的过程中难免需要给数据制作图表,根据各种数据需求绘制出不同的图表,今天的文章主要讲解 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 模块中图表组件的基类,支持的图表类型包括面积、条形图、柱形图、折线图、饼图、散点图、股票和雷达等

  • area:面积图表;

  • bar:条形图表;

  • column:柱形图表;

  • line:线条图表;

  • pie:饼图图表;

  • scatter:散点图表;

  • stock:股票图表;

  • radar:雷达图表

XlsxWriter 绘制柱状图

使用 XlsxWriter 绘制柱状图详细代码如下:

  1. import xlsxwriter
  2. def chart_column():
  3.     workbook = xlsxwriter.Workbook('chart.xlsx')
  4.     worksheet = workbook.add_worksheet()
  5.     # Create a new Chart object.
  6.     chart = workbook.add_chart({'type''column'})
  7.     # Write some data to add to plot on the chart.
  8.     data = [
  9.     [132591435],
  10.     [1214161820],
  11.     [1316192225],
  12.     ]
  13.     worksheet.write_column('A1', data[0])  # 按列插入
  14.     worksheet.write_column('B1', data[1])
  15.     worksheet.write_column('C1', data[2])
  16.     # Configure the chart. In simplest case we add one or more data series.
  17.     chart.add_series({'values''=Sheet1!$A$1:$A$5'})
  18.     chart.add_series({'values''=Sheet1!$B$1:$B$5'})
  19.     chart.add_series({'values''=Sheet1!$C$1:$C$5'})
  20.     # Insert the chart into the worksheet.
  21.     worksheet.insert_chart('A7', chart)
  22.     workbook.close()
  23. if __name__ == '__main__':
  24.     chart_column()

绘制图片输出结果如下:

60cc33f21a0997131e2b2baec29f06c5.png

XlsxWriter 绘制柱状图叠图

XlsxWriter 绘制柱状图叠图详细方法详见如下代码:

  1. def charts_column1():
  2.     workbook = xlsxwriter.Workbook("expense02.xlsx")
  3.     # 添加一个Sheet页,不添写名字,默认为Sheet1
  4.     worksheet = workbook.add_worksheet()
  5.     # 准备数据
  6.     headings = ["姓名""语文""数学"]
  7.     data = [["张三"7860], ["李四"9889], ["王五"88100]]
  8.     # 样式
  9.     head_style = workbook.add_format({"bold": True, "bg_color""yellow""align""center""font"13})
  10.     # 写数据
  11.     worksheet.write_row("A1", headings, head_style)
  12.     for i in range(0len(data)):
  13.         worksheet.write_row("A{}".format(i + 2), data[i])
  14.     # 添加柱状图叠图子类型
  15.     chart2 = workbook.add_chart({"type""column""subtype""stacked"})
  16.     chart2.add_series({
  17.         "name""=Sheet1!$B$1",
  18.         "categories""=Sheet1!$A$2:$a$4",
  19.         "values""=Sheet1!$B$2:$B$4"
  20.     })
  21.     chart2.add_series({
  22.         "name""=Sheet1!$C$1",
  23.         "categories""=Sheet1!$A$2:$a$4",
  24.         "values""=Sheet1!$C$2:$C$4"
  25.     })
  26.     chart2.set_title({"name""叠图子类型"})
  27.     chart2.set_x_axis({"name""姓名"})
  28.     chart2.set_y_axis({"name""成绩"})
  29.     chart2.set_style(12)
  30.     # 插入图表
  31.     worksheet.insert_chart("B7", chart2)
  32.     # 关闭EXCEL文件
  33.     workbook.close()

绘制结果如下:

b86ad70feed36b488bd9efa0ea85cb0e.png

XlsxWriter 绘制饼图

XlsxWriter 绘制饼图只需要新建一个工作表后添加饼图样式即可,详细绘制方式如下:

  1. def chart_pie():
  2.     workbook = xlsxwriter.Workbook("expense03.xlsx")
  3.     # 添加一个Sheet页,不添写名字,默认为Sheet1
  4.     worksheet = workbook.add_worksheet()
  5.     # 准备数据
  6.     headings = ["姓名""语文""数学"]
  7.     data = [["张三"7860], ["李四"9889], ["王五"88100]]
  8.     # 样式
  9.     head_style = workbook.add_format({"bold": True, "bg_color""yellow""align""center""font"13})
  10.     # 写数据
  11.     worksheet.write_row("A1", headings, head_style)
  12.     for i in range(0len(data)):
  13.         worksheet.write_row("A{}".format(i + 2), data[i])
  14.     # 添加饼图
  15.     chart3 = workbook.add_chart({"type""pie"})
  16.     chart3.add_series({
  17.         # "name":"饼形图",
  18.         "categories""=Sheet1!$A$2:$A$4",
  19.         "values""=Sheet1!$B$2:$B$4",
  20.         # 定义各饼块的颜色
  21.         "points": [
  22.             {"fill": {"color""yellow"}},
  23.             {"fill": {"color""blue"}},
  24.             {"fill": {"color""red"}}
  25.         ]
  26.     })
  27.     chart3.set_title({"name""饼图成绩单"})
  28.     chart3.set_style(3)
  29.     # 插入图表
  30.     worksheet.insert_chart("B7", chart3)
  31.     # 关闭EXCEL文件
  32.     workbook.close()

绘制图片结果如下:

8d10c5b64e01c55a5896b2772fe03c53.png

总结

今天的文章讲解了神器 xlsxwriter 操作 Excel 绘制柱状图、饼图、柱状图叠图等图形详细过程,当然还有更多关于 xlsxwriter 有趣的知识点还未分享,感兴趣的朋友们可以试试,希望对大家有所帮助。

参考

https://pypi.org/project/XlsxWriter/

PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!

老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

a6fe69f2fe10f7b9fa253c5f4ad92cfb.gif

代码获取方式

识别文末二维码,回复:潮汐

40449e3941eaff2de2794d9d9ca0b10a.png

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/43962
推荐阅读
相关标签
  

闽ICP备14008679号