python xlsxwriter库生成图表的应用
xlsxwriter可能用过的人并不是很多,不过使用后就会感觉,他的功能让你叹服,除了可以按要求生成你所需要的excel外
还可以加上很形象的各种图,比如柱状图、饼图、折线图等。
请看本人生成的:


这里包含了数据公式的计算,插入图片的连接,生成的图表,当然如果你还需要其他的功能,可以继续参考库的文档
下面把源代码贴出来,希望对大家在工作遇到类似的情况,可以直接拿去用。不过转载的时候请注明出处。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:Eric.yue import xlsxwriter
import random
from datetime import date
import collections def xlwt_chart(xl_obj,table): #生成柱状图
column_chart = xl_obj.add_chart({'type':'column'})
column_chart.add_series({
'name':'=sheet1!$D$1',
'categories':'=sheet1!$D$2:$D$7',
'values':'=sheet1!$E$2:$E$7'
})
table.insert_chart('G2',column_chart) #生成饼图
column_chart2 = xl_obj.add_chart({'type':'pie'})
column_chart2.add_series({
'name': '=sheet1!$D$1',
'categories':'=sheet1!$D$2:$D$7',
'values': '=sheet1!$E$2:$E$7'
})
table.insert_chart('G20', column_chart2) def xlwt_run():
data_base = ['0-50','50-60','60-70','70-80','80-90','90-100'] #生成一个有序的字典
chart_dict = collections.OrderedDict.fromkeys(data_base,0) xl_obj = xlsxwriter.Workbook('chart.xlsx')
table = xl_obj.add_worksheet('sheet1')
table.write_string(0,0,u'姓名')
table.write_string(0,1,u'成绩')
table.write_string(0,2,u'日期')
table.merge_range('D1:E1', u'成绩分布')
table.set_column('C:E',15) #定义格式
date_format = xl_obj.add_format({'num_format':'yyyy-mm-dd'})
color_format = xl_obj.add_format({'color':'red'})
font_format = xl_obj.add_format({'font_color':'green','bold':True}) mm = 1
for i in xrange(1,40):
name = 'name_%d' % i
score = random.randint(30,100)
if score <= 50:
chart_dict['0-50'] += 1
elif score>50 and score<=60:
chart_dict['50-60'] += 1
elif score>60 and score<=70:
chart_dict['60-70'] += 1
elif score>70 and score<=80:
chart_dict['70-80'] += 1
elif score>80 and score<=90:
chart_dict['80-90'] += 1
else:
chart_dict['90-100'] += 1 if score > 60:
table.write_string(i, 0, name)
table.write_number(i, 1, score)
else:
table.write_string(i, 0, name, color_format)
table.write_number(i, 1, score, color_format) table.write_datetime(i, 2,date.today(), date_format)
mm = mm + 1 #生成图表数据
row = 1
for k,v in chart_dict.items():
table.write_string(row, 3, k, font_format)
table.write_number(row, 4, v, font_format)
row = row+1 xlwt_chart(xl_obj,table)
#使用公式
table.write_formula(mm,1,'=AVERAGE(B2:B40)')
#插入带链接的图片
table.insert_image('D20',r'/home/mywork/pythonchina/cto51_log/bd_logo12.png',{'url':'https://www.baidu.com'}) #关闭excel句柄
xl_obj.close() if __name__ == '__main__':
xlwt_run()
没有使用类写,只是即兴而作。
python xlsxwriter库生成图表的应用的更多相关文章
- Python xlsxwriter库 图表Demo
折线图 import xlsxwriter # 创建一个excel workbook = xlsxwriter.Workbook("chart_line.xlsx") # 创建一个 ...
- 使用Python第三方库生成二维码
本文主要介绍两个可用于生成二维码的Python第三方库:MyQR和qrcode. MyQR的使用: 安装: pip install MyQR 导入: from MyQR import myqr imp ...
- 通过python xlsxwriter模块生成EXCEL柱状图、饼图
xlsxwriter模块不是python自带的,使用pip下载 import xlsxwriter #新建一个excel文件,起名为expense01.xlsx workbook = xlsxwrit ...
- python lxml库生成xml文件-节点命名空间问题
lxml库,处理xml很强大,官方文档:https://lxml.de/tutorial.html#namespaces 例如: 我们要生成如下格式的报文: <ttt:jesson xmlns: ...
- 基于Python Pillow库生成随机验证码
from PIL import Image from PIL import ImageDraw from PIL import ImageFont import random class ValidC ...
- 用 python 来操作 docx, xlsx 格式文件(一)(使用 xlsxwriter 库操作xlsx格式文件)
需要从数据库读取日志生成相应的 docx,xlsx 文件做相应的记录 所以自然要用到docx, xlsxwriter 库 但是这些库的应用场景非常广泛,任何需要对 word,excel 文件执行重复性 ...
- python 生成图表
python写入excel(xlswriter)--生成图表 折线图 # -*- coding:utf-8 -*- import xlsxwriter # 创建一个excel workbook = x ...
- 使用Python的库qrcode生成二维码
现在有很多二维码的生成工具,在线的,或者安装的软件,都可以进行生成二维码.今天我用Python的qrcode库生成二维码.需要预先安装 Image 库 安装 用pip安装 # pip install ...
- 使用python库xlsxwriter库来输出各种xlsx文件
功能性的文章直接用几个最简单的实现表达: xlsxwriter库的核心就是其Workbook对象. 创建一个指定名字的xlsx文件: import xlsxwriter filename = '/Us ...
随机推荐
- 关于echarts 报错 初始化对象未定义
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 【基础】26个命令玩转linux,菜鸟及面试必备
1 查看目录与文件:ls #显示当前目录下所有文件的详细信息 ls -la 2 切换目录:cd #切换当前目录为/opt/test cd /opt/test 3 显示当前目录:pwd pwd 4 创建 ...
- Hibernate 一对一中的一些问题
1.对于想查询一对一种一方为空的时候使用 例如一个用户对应一个人,则要从人查找没有用户的人员的话, 使用hql语句是查询不到的 我今天也碰到了这个问题,研究了下,可以用以下语句查出来:from Per ...
- 使用commons-csv简单读写CSV文件
文章首发于我的github博客 需求 客户的开发测试环境将做迁移.因此需要对zookeeper上的重要的数据以CSV文件格式做备份. 本文通过Apache的commons-csv操作CSV文件.官网地 ...
- CodeForces - 796A Buying A House
思路:从m直接向两边枚举,如果当前点需要的费用小于等于k,说明一定是最近距离. AC代码 #include <cstdio> #include <cmath> #include ...
- java socket 模拟im 即时通讯
自己想了一下怎么实现,就写了,没有深究是否合理.更多处理没有写下去,例如收件人不在线,应该保存在数据库,等下一次连接的时候刷新map,再把数据发送过去,图片发送也没有做,也没有用json格式 sock ...
- js处理时间戳显示的问题
function getDate(tm){ ); var year = date.getFullYear(); var month = date.getMonth()+1; var day = dat ...
- linux Nagios监控
监控目标 监控目标主机分为四个部分 硬件资源 操作系统 数据库 应用软件 监控目的: 进行服务器性能调整前,知道调整什么,系统瓶颈在什么地方 被一部分必须同时监控,内容包括吞吐量,反应时间,使用率等 ...
- weak alias
Weak Alias 跟 Weak Reference 完全没有任何关系,不过是我在看到 Weak Reference 的时候想到的而已. Weak Alias 是 gcc 扩展里的东西,实际上是函数 ...
- php替换文件指定行的内容
//第一种 利用file 函数 读取文件,每一行都是一个数组元素 $arr = file($file); $arr[$line] = "hello"; file_put_conte ...