最近领导甩给我两张报表,让我实现报表的联结和可视化展现,要求是通过代码实现,使得每天花费在这项工作上的时间越短越好,要求查询精确,还要漂亮丰富多彩。
数据查询的工作,我会在后期的文章中展现,因为文件涉及到公司内部资料,后期我会选择用其他的数据代替。而“丰富多彩”的图表,我立马就想到了他之前提到的ECHARTS这个强大的可于是就想探索一番。

Echarts中有各式各样的图标示例,并且可以自己切换各种风格和配色,几乎能够满足所有日常的工作需求

随便点开一个示例图,左边是代码(可编辑),右边是展示图例。Echarts的代码脚本都是JavaScript,对于我这种小白来说,也可以看得懂,并且其中很多函数的用法和python中都是一致的。

新的探索

一开始我尝试在Echarts网站中直接编辑修改代码生成图例,但是因为每天的报表都要更新统计,而每天重新打开Echarts、再找到图例再输入数字修改,效率很低。
于是我去查阅是否可以将python和Echarts结合起来,或者python中是否有类似于Echarts功能的强大的开源库。最后我终于发现了Pyecharts!(鼓掌鼓掌)

1. 火速安装Pyecharts

和安装任何一个python库一样,首先调出你的python环境
电脑win+R 输入cmd进入:

输入activate python37
我这里是conda的虚拟环境,命名为python37

接着输入 pip install Pyecharts 即可,很快就会装好

2. 快速上手

Pyecharts可以展示动态图,在线报告使用比较美观,并且展示数据方便,鼠标悬停在图上,即可显示数值、标签等。

我需要去呈现的是:
在两个不同的path下核对的总数,和本月每个path下核对的正确率,且鼠标悬停在图中的任何一个位置,都可以显示具体数据信息。

我采用双y轴去展现,最后期望图就是这样:

①导入需要的模块:

Bar 和Line是我们需要画柱状图和折线图需要用到的类,options是pyecharts全局配置项。
什么是全局配置项呢?简而言之,就是我们为我们生成的图例加上标题、图例、颜色和各种其他配置,是作用与整个图例中,而不是单独一类图中。我们可以理解成这是一个类中的全局变量,而不同的图都是需要加入到这个大类中的一个方法。

from pyecharts.charts import Bar,Line
from pyecharts import options as opts
② 分别定义我们的柱状图和折线图函数:
def bar_charts():bar1 = (Bar(init_opts=opts.InitOpts(width='1000px',height='500px')) # 示例对象实例化.add_xaxis(date)  # x轴数据.add_yaxis("match",A) # 图例名称 + y轴数据.add_yaxis("total",B)# 全局配置:标题/副标题.set_global_opts(title_opts=opts.TitleOpts(title="折柱图日报"),tooltip_opts=opts.TooltipOpts(trigger='axis',axis_pointer_type='cross'), # 指示器类型,十字/阴影/直线/无toolbox_opts=opts.ToolboxOpts(is_show = True, ))# bar 拓展.extend_axis(yaxis=opts.AxisOpts( # 右侧y轴标签name='',type_='value', # 类型min_=0,   #右侧y轴的最小值max_=100, #右侧y轴的最大值interval=10, # y轴间隔axislabel_opts=opts.LabelOpts(formatter='{value}%') )))return bar1def line_charts():line1=(Line().add_xaxis(date).add_yaxis('percent',y,yaxis_index=1,  # 线图用右侧索引,因此为1label_opts=opts.LabelOpts(is_show=True),is_smooth=True))return line1
③ 将折线图加到柱状图上,用overlap() 函数:
bar1.overlap(line1).render('1212.html')

附上全部代码:

#导入我们需要的模块
from pyecharts.charts import Bar,Line
from pyecharts import options as optsdate=['9.1','9.2','9.6','9.7','9.8','9.10','9.11','9.12','9.17']
A= [1,2,2,1,0,3,0,1,2]
B= [1,2,4,1,3,9,2,1,2]
y=[100,1,50,100,0,33.33,0,1,100]
def bar_charts():bar1 = (Bar(init_opts=opts.InitOpts(width='1000px',height='500px')) # 示例对象.add_xaxis(date) # x轴数据.add_yaxis("match",A) # 图例名称 + y轴数据.add_yaxis("total",B)# 全局配置:标题/副标题.set_global_opts(title_opts=opts.TitleOpts(title="折柱图日报"),tooltip_opts=opts.TooltipOpts(trigger='axis',axis_pointer_type='cross'), # 指示器类型,十字/阴影/直线/无toolbox_opts=opts.ToolboxOpts(is_show = True, ))# bar 拓展.extend_axis(yaxis=opts.AxisOpts( # 右侧y轴标签name='',type_='value', # 类型min_=0,max_=100,interval=10, # 间隔axislabel_opts=opts.LabelOpts(formatter='{value}%') )))return bar1def line_charts():line1=(Line().add_xaxis(date).add_yaxis('percent',y,yaxis_index=1, # 线图用右侧索引,因此为1label_opts=opts.LabelOpts(is_show=True),is_smooth=True))return line1bar1=bar_charts()
line1=line_charts()# line1.render_notebook()
bar1.overlap(line1).render('1212.html')

Pyecharts的功能远不止于此,网上有各种帖子可以参考做出不同的图,我这里就不一一展示了,希望对你有所帮助。
生活啊,就是在一次次想要放弃的时候,又重燃希望啊!

你该知道的Pyecharts简易上手教程相关推荐

  1. 【Daily Games——工具篇】:LuaStudio的简易上手教程

    实习第二天 Lua直接上手体验,各种嵌套的内容像html 实际代码体验类似c 上手luastudio,增加断点调试,修改逻辑 发现bug最近登录角色level显示错误 创建自定义位置解决项目,导入项目 ...

  2. 资深程序员才知道的30个Python技巧

    Python中的省略号 Python省略号是三点序列,通常在自然语言中使用.但是您可能不知道的是,这也是Python中的有效对象: - Ellipsis 它主要用于NumPy中的矩阵切片操作.但是,您 ...

  3. 入门深度学习?这里有5件你应该知道的事

    作者|PURVA HUILGOL 编译|Flin 来源|analyticsvidhya 开始你的深度学习生涯? 对于新手来说,深度学习是一个复杂而令人生畏的领域.像隐藏层.卷积神经网络.反向传播等概念 ...

  4. 学vue前你需要知道的:vue生态圈

    文章目录 前言 Vue.js Vue Angular React Vuex Vue Router Devtools vue-cli img View UI(iView) Element(饿了么) 前言 ...

  5. Vue 开发必须知道的 36 个技巧【近1W字】

    前言 Vue 3.x 的Pre-Alpha 版本.后面应该还会有 Alpha.Beta 等版本,预计至少要等到 2020 年第一季度才有可能发布 3.0 正式版; 所以应该趁还没出来加紧打好 Vue2 ...

  6. 物联网产品:你需要知道的9种智能家居产品

     前NASA科研人员:你需要知道的9种智能家居产品 width="22" height="16" src="http://hits.sinajs. ...

  7. vue Mutation 必须是同步函数 为什么_Vue 开发必须知道的 36 个技巧「近1W字」

    Vue 开发必须知道的 36 个技巧 说明:本文并非原创,来源于segmentfault,搜索文章标题可查看原文 前言 Vue 3.x 的Pre-Alpha 版本.后面应该还会有 Alpha.Beta ...

  8. 【秒懂】号称最为简明实用的Django上手教程

    https://www.cnblogs.com/baiboy/p/django1.html 阅读目录 1 几个基本概念 2 Django配置准备 3 Django基础配置安装   摘要:Django的 ...

  9. php要懂函数吗,九个你需要知道的PHP函数和功能

    9个你需要知道的PHP函数和功能 即使使用 PHP 多年,有些功能和特点我们也未必发现或未被充分利用,一旦被我们发现,就会发现它们非常有用.然而,并不是所有的人都已经从头至尾详读过 PHP 的手册和功 ...

最新文章

  1. Android规范发展
  2. 20155319 2016-2017-2 《Java程序设计》第七周学习总结
  3. C++反汇编代码分析
  4. 关于webcontrols的TreeView中转义符的处理问题
  5. Cisco PIX Syslog 配置说明
  6. ABAP通过正则表达式提成字符串中的数字例子
  7. 随心测试_软测基础_004职责与质量
  8. Rust语言学习大纲
  9. Go语言编程从入门到精通,数据类型
  10. 计算机内如何关闭wps云盘,WPS轻松去掉WPS网盘,你可以吗?
  11. springcloud以及四大神兽面试涉及知识总结(持续更新)
  12. 基于Sen2Cor软件的Sentinel-2大气校正
  13. 微信小程序用canvas画图并分享
  14. 天池大赛:街景字符编码识别——Part2:数据读取与数据扩增
  15. 学习总结-《父与子的编程之旅》chapter 20
  16. 做测试,如何提升“话语权”?
  17. Ubuntu 17.10/内核4.13.0 vmware 提示 Not Enough Physical Memory 解决方法
  18. Psensor driver 三(校准)
  19. 缅怀致敬 继往开来 | 萨师煊教授诞辰100周年纪念主题活动在京举行
  20. QueryRunner 实现批量处理

热门文章

  1. 王者荣耀 兵线刷新时间计数器 || 程咬金 水晶断兵线时间
  2. Apollo 初识 • 阿波罗简单配置结构
  3. 架构搜索文献笔记(9):《CurveLane-NAS: Unifying Lane-Sensitive Architecture Search and Adaptive Point》
  4. 小而美的ToDo 待办事项便签工具,高效管理工作生活一切琐事
  5. 安卓中关于图片的类型
  6. recovery_minui解说
  7. 惠普台式电脑引导不了系统_惠普(HP)电脑安装不了GHOST系统的解决方法
  8. python opencv手势识别_OpenCV+Python3.5 简易手势识别的实现
  9. iPad app 开发概述
  10. CanOpen协议的伺服驱动控制