你该知道的Pyecharts简易上手教程
最近领导甩给我两张报表,让我实现报表的联结和可视化展现,要求是通过代码实现,使得每天花费在这项工作上的时间越短越好,要求查询精确,还要漂亮丰富多彩。
数据查询的工作,我会在后期的文章中展现,因为文件涉及到公司内部资料,后期我会选择用其他的数据代替。而“丰富多彩”的图表,我立马就想到了他之前提到的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全局配置项。
什么是全局配置项呢?简而言之,就是我们为我们生成的图例加上标题、图例、颜色和各种其他配置,是作用与整个图例中,而不是单独一类图中。我们可以理解成这是一个类中的全局变量,而不同的图都是需要加入到这个大类中的一个方法。
② 分别定义我们的柱状图和折线图函数:
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简易上手教程的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: C++11 新功能
- 下一篇: ZOJ 3789 Gears