python xlsxwriter库生成图表的应用
xlsxwriter可能用过的人并不是很多,不过使用后就会感觉,他的功能让你叹服,除了可以按要求生成你所需要的excel外
还可以加上很形象的各种图,比如柱状图、饼图、折线图等。
请看本人生成的:
这里包含了数据公式的计算,插入图片的连接,生成的图表,当然如果你还需要其他的功能,可以继续参考库的文档
下面把源代码贴出来,希望对大家在工作遇到类似的情况,可以直接拿去用。不过转载的时候请注明出处。
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # Author:Eric.yue 4 5 import xlsxwriter 6 import random 7 from datetime import date 8 import collections 9 10 def xlwt_chart(xl_obj,table): 11 12 #生成柱状图 13 column_chart = xl_obj.add_chart({'type':'column'}) 14 column_chart.add_series({ 15 'name':'=sheet1!$D$1', 16 'categories':'=sheet1!$D$2:$D$7', 17 'values':'=sheet1!$E$2:$E$7' 18 }) 19 table.insert_chart('G2',column_chart) 20 21 #生成饼图 22 column_chart2 = xl_obj.add_chart({'type':'pie'}) 23 column_chart2.add_series({ 24 'name': '=sheet1!$D$1', 25 'categories':'=sheet1!$D$2:$D$7', 26 'values': '=sheet1!$E$2:$E$7' 27 }) 28 table.insert_chart('G20', column_chart2) 29 30 31 def xlwt_run(): 32 data_base = ['0-50','50-60','60-70','70-80','80-90','90-100'] 33 34 #生成一个有序的字典 35 chart_dict = collections.OrderedDict.fromkeys(data_base,0) 36 37 xl_obj = xlsxwriter.Workbook('chart.xlsx') 38 table = xl_obj.add_worksheet('sheet1') 39 table.write_string(0,0,u'姓名') 40 table.write_string(0,1,u'成绩') 41 table.write_string(0,2,u'日期') 42 table.merge_range('D1:E1', u'成绩分布') 43 table.set_column('C:E',15) 44 45 #定义格式 46 date_format = xl_obj.add_format({'num_format':'yyyy-mm-dd'}) 47 color_format = xl_obj.add_format({'color':'red'}) 48 font_format = xl_obj.add_format({'font_color':'green','bold':True}) 49 50 mm = 1 51 for i in xrange(1,40): 52 name = 'name_%d' % i 53 score = random.randint(30,100) 54 if score <= 50: 55 chart_dict['0-50'] += 1 56 elif score>50 and score<=60: 57 chart_dict['50-60'] += 1 58 elif score>60 and score<=70: 59 chart_dict['60-70'] += 1 60 elif score>70 and score<=80: 61 chart_dict['70-80'] += 1 62 elif score>80 and score<=90: 63 chart_dict['80-90'] += 1 64 else: 65 chart_dict['90-100'] += 1 66 67 if score > 60: 68 table.write_string(i, 0, name) 69 table.write_number(i, 1, score) 70 else: 71 table.write_string(i, 0, name, color_format) 72 table.write_number(i, 1, score, color_format) 73 74 table.write_datetime(i, 2,date.today(), date_format) 75 mm = mm + 1 76 77 #生成图表数据 78 row = 1 79 for k,v in chart_dict.items(): 80 table.write_string(row, 3, k, font_format) 81 table.write_number(row, 4, v, font_format) 82 row = row+1 83 84 xlwt_chart(xl_obj,table) 85 #使用公式 86 table.write_formula(mm,1,'=AVERAGE(B2:B40)') 87 #插入带链接的图片 88 table.insert_image('D20',r'/home/mywork/pythonchina/cto51_log/bd_logo12.png',{'url':'https://www.baidu.com'}) 89 90 #关闭excel句柄 91 xl_obj.close() 92 93 if __name__ == '__main__': 94 xlwt_run()
没有使用类写,只是即兴而作。
转载于:https://www.cnblogs.com/gide/p/8575249.html
python xlsxwriter库生成图表的应用相关推荐
- python qrcode库生成二维码的代码
如下内容内容是关于python qrcode库生成二维码的内容,希望能对各位有所用. import qrcode img = qrcode.make('Some data here')高级用法impo ...
- python 用 xlwings 库 生成图表
在官方文档里找不到具体怎么生成图表,和一些参数设置. 这里自己整理了一下. import xlwings as xwapp = xw.App() wb = app.books.active sht = ...
- 使用python 处理表格生成图表_教你用Python自动读取数据生成图表,产生的效益很可观...
厌烦了每次都要在Excel里拖动数据来生成图形吧,这篇文章里,教你用Python自动读取Excel数据生成图表,然后Python 使用XlsxWriter模块在Excel工作表中绘制带有数据表的柱形图 ...
- python api文档生成二维码_使用Python第三方库生成二维码
本文主要介绍两个可用于生成二维码的Python第三方库:MyQR和qrcode. MyQR的使用: 安装: pip install MyQR 导入: from MyQR import myqr imp ...
- python 邮件中生成图表_60秒一口Python:147个demo,助你从新手小白步步进阶编程高手...
人生苦短,编程苦手,不妨学起Python,感受一飞冲天的快乐. 不要害怕学习的过程枯燥无味,这里有程序员jackzhenguo打造的一份中文Python"糖果包":147个代码小样 ...
- python random库生成伯努利随机数的方法_详解Python基础random模块随机数的生成
随机数参与的应用场景大家一定不会陌生,比如密码加盐时会在原密码上关联一串随机数,蒙特卡洛算法会通过随机数采样等等.Python内置的random模块提供了生成随机数的方法,使用这些方法时需要导入ran ...
- python random库生成伯努利随机数的方法_Python使用random模块生成随机数操作实例详解...
本文实例讲述了Python使用random模块生成随机数操作.分享给大家供大家参考,具体如下: 今天在用Python编写一个小程序时,要用到随机数,于是就在网上查了一下关于Python生成各种随机数的 ...
- python标准库生成随机数_Python3标准库:random伪随机数生成器
1. random伪随机数生成器 random模块基于Mersenne Twister算法提供了一个快速伪随机数生成器.原来开发这个生成器是为了向蒙特卡洛模拟生成输入,Mersenne Twister ...
- python调用报表制作工具_工作汇报神技!用Python三步生成带有图表的word报表
最近在项目中做了一个生成并导出word报表的功能,在这里分享给大家. 经过查看ESPC原有的生成报表代码和网上查阅的一些方法,解决方案的思路如下: 1.利用pychartdir库生成图表,保存图片,转 ...
最新文章
- AI十年进阶:一段算法能力演进的历史
- 监控 线程 php,Linux平台PHP5.4设置FPM线程数量的方法
- java学习(11):Java数据类型转换
- js 正则表达式实现文本验证
- 作者:刘勇,山东农业大学教授、博士生导师。
- java调用javascript函数_使用Java程序中的参数调用Javascript函数
- struct interface_GCTT | 接受 interface 参数,返回 struct 在 go 中意味着什么
- 第一次作业:深入源码分析进程模型
- 网站后台输入密码错误
- 【Labplus 3】Scratch获取角色造型的数量
- 人的肢体语言个人总结
- 独立思考者的思考模型
- SQL Server 数据库实验课第九周——第六章总结
- Matlab中抽象类和类成员
- 7-5 构建矩阵 (10分)
- SAND-MATIC 质押池将停用
- IDEA查看maven依赖关系的方法
- 威联通QNAP Nas同步复制文件到另外一台NAS
- PowerBI基础——第二天 最强大的引擎calculate、筛选表calculatetable、高级筛选器filter
- oracle语句块begin的好处,sql – 如何从Oracle中的declare / begin / end块返回行?
热门文章
- 联想拯救者r720适合java么_联想拯救者R720重装Win10系统的正确姿势
- 关于微信小程序A 与 微信小程序B 之间的跳转问题
- 深圳市科技创新委员会关于印发《深圳市科学技术奖四类奖项实施细则》的通知
- 国防科大计算机学院考博试卷,2017年国防科技大学考博英语真题
- Windows10 -64 安装tensorflow遇到的:cuda安装后找不到安装文件目录
- solidity的投票示例代码
- 华为b6手环能升级鸿蒙吗,华为手环B6,终于等到你!两年磨一剑的升级,亮点多多!...
- 蓝海卓越计费管理系统漏洞学习——download.php 任意文件读取漏洞
- 人工智能将改变教育的未来:让我们变得更聪明
- BZOJ 2095 [Poi2010]Bridges 二分 最大流(混合图欧拉回路)