你该知道的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全局配置项。
什么是全局配置项呢?简而言之,就是我们为我们生成的图例加上标题、图例、颜色和各种其他配置,是作用与整个图例中,而不是单独一类图中。我们可以理解成这是一个类中的全局变量,而不同的图都是需要加入到这个大类中的一个方法。

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 bar1

def line_charts():
    line1=(
        Line()
            .add_xaxis(date)
            .add_yaxis('percent',y,yaxis_index=1,  # 线图用右侧索引,因此为1
                label_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 opts

date=['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 bar1


def line_charts():
    line1=(
        Line()
            .add_xaxis(date)
            .add_yaxis('percent',y,yaxis_index=1, # 线图用右侧索引,因此为1
                label_opts=opts.LabelOpts(is_show=True),is_smooth=True)
    )
    return line1

bar1=bar_charts()
line1=line_charts()

# line1.render_notebook()
bar1.overlap(line1).render('1212.html')

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

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值