目录
1-PyEcharts介绍
优点:
安装:
官方文档:
2-PyEcharts快速入门
2.1 第一个图表绘制
2.2 链式调用
2.3 opeions配置项
2.4 渲染图片文件
2.5 使用主题
3-PyEcharts配置项
3.1 初始化配置项InitOpts
InitOpts
3.2 全局配置项set_global_opts
标题配置TitleOpts
图例配置LegendOpts
常见图标:
工具箱配置ToolboxOpts
视觉映射配置VisualMapOpts
提示框配置:TooltipOpts
区域缩放配置:DataZoomOpts
1-PyEcharts介绍
Echarts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。
而Python 是一门富有表达力的语言,很适合用于数据处理。
当数据分析遇上数据可视化时,pyecharts诞生了。
Echarts是用JS来写的,而我们使用pyecharts则可以使用Python来调用里面的API。
优点:
1、简洁的 API 设计,使用如丝滑般流畅,支持链式调用.
2、囊括了 30+ 种常见图表,应有尽有 .
3、支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab.
4、可轻松集成至 Flask,Django 等主流 Web 框架.
5、高度灵活的配置项,可轻松搭配出精美的图表.
6、详细的文档和示例,帮助开发者更快的上手项目.
7、多达 400+ 地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持.
安装:
pip install pyecharts==1.9.1
官方文档:
pyecharts - A Python Echarts Plotting Library built with love.
2-PyEcharts快速入门
pyecharts中可以绘制的图有很多,这里我们先来总体的了解一下他的使用风格,和调用的方式。有宏观的理解后,再具体学习具体图形的绘制。
2.1 第一个图表绘制
from pyecharts.charts import Bar
from pyecharts.charts import Bar # Bar绘制柱状图 bar = Bar() bar.add_xaxis(["苹果","华为","联想","三星","小米"]) bar.add_yaxis("淘宝",[12000,8000,6000,14000,4000]) bar.add_yaxis("京东",[13000,7500,4000,12000,6000]) # render 默认渲染成html bar.render() #'可传文件名--保存' # 在notebook中展示 bar.render_notebook()
2.2 链式调用
--上面代码的简化版.更方便.
bar = ( Bar() #创建对象. #注意:这里是 点 .add_xaxis(["苹果","华为","联想","三星","小米"]) .add_yaxis("淘宝",[12000,8000,6000,14000,4000]) .add_yaxis("京东",[13000,7500,4000,12000,6000]) ) bar.render_notebook()
2.3 opeions配置项
全局/局部/初始化
from pyecharts import options as opts
from pyecharts import options as opts bar = ( Bar() .add_xaxis(["苹果","华为","联想","三星","小米"]) .add_yaxis("淘宝",[12000,8000,6000,14000,4000]) .add_yaxis("京东",[13000,7500,4000,12000,6000]) # set_global_opts:全局配置 title_opts:标题 .set_global_opts(title_opts=opts.TitleOpts(title="主标题1",subtitle="副标题1")) # .set_global_opts(title_opts={"text":"主标题2","subtext":"副标题2"}) ) bar.render_notebook()
2.4 渲染图片文件
--正常保存下来的图片(png/jpg)的背景是没有进行渲染的.
from pyecharts.render import make_snapshot # pip install snapshot_selenium from snapshot_selenium import snapshot #这里要用到自动化,浏览器自动化别忘了~~ bar = ( Bar() .add_xaxis(["苹果","华为","联想","三星","小米"]) .add_yaxis("淘宝",[12000,8000,6000,14000,4000]) .add_yaxis("京东",[13000,7500,4000,12000,6000]) ) make_snapshot(snapshot,bar.render(),"bar.png")
2.5 使用主题
-
默认主题类型为WHITE
-
内置主题类型包括LIGHT、DARK、CHALK、ESSOS、INFOGRAPHIC、MACARONS、PURPLE_PASSION、ROMA、ROMANTIC、SHINE、VINTAGE、WALDEN、WESTEROS、WONDERLAND
-
可参考官方文档:pyecharts - A Python Echarts Plotting Library built with love.
from pyecharts.globals import ThemeType bar = ( Bar( #对象里面设置主题(配置项) init_opts=opts.InitOpts(theme=ThemeType.DARK) ) .add_xaxis(["苹果","华为","联想","三星","小米"]) .add_yaxis("淘宝",[12000,8000,6000,14000,4000]) .add_yaxis("京东",[13000,7500,4000,12000,6000]) ) bar.render_notebook()
3-PyEcharts配置项
3.1 初始化配置项InitOpts
-
InitOpts
from pyecharts.charts import Bar from pyecharts import options as opts from pyecharts.faker import Faker from pyecharts.globals import ThemeType, RenderType # 生成同一属性的七个值 Faker.choose() #Faker ---> 类似于random #快速创建,方便啊. # 生成随机的七组数 Faker.values() bar = ( Bar( # init_opts:初始化配置项 init_opts=opts.InitOpts( # 画布大小 单位像素 width="700px", height="500px", renderer=RenderType.CANVAS, #渲染风格 page_title="商品价格对比", theme=ThemeType.WESTEROS, #主题 bg_color="white", #背景颜色 ) ) .add_xaxis(Faker.choose()) .add_yaxis("淘宝",Faker.values()) .add_yaxis("天猫",Faker.values()) .add_yaxis("京东",Faker.values()) ) bar.render_notebook()
3.2 全局配置项set_global_opts
标题配置TitleOpts
bar = ( Bar( # init_opts:初始化配置项 init_opts=opts.InitOpts( # 画布大小 单位像素 width="700px", height="500px", ) ) .add_xaxis(Faker.choose()) .add_yaxis("淘宝",Faker.values()) .add_yaxis("天猫",Faker.values()) .add_yaxis("京东",Faker.values()) .set_global_opts( # TitleOpts:标题 title_opts=opts.TitleOpts( title="价格对比柱状图", title_link="https://www.taobao.com", # 点击主标题的跳转链接!!! #在哪个窗口打开. title_target="blank", # blank:新窗口打开 self:当前窗口打开 #主要是主标题的跳转. # subtitle="副标题", # subtitle_link="https://www.taobao.com", # subtitle_target="blank", # 位置 靠左 pos_left="20px", pos_top="30px", padding=5, # 内边距 item_gap=5, # 主副标题之间的距离 ) ) ) bar.render_notebook()
图例配置LegendOpts
常见图标:
circle(圆),rect(矩形),roundRect(圆弧矩形),triangle(三角形),diamond(棱形) ,pin(坐标) arrow(位置)
bar = ( Bar( # init_opts:初始化配置项 init_opts=opts.InitOpts( # 画布大小 单位像素 width="700px", height="500px", ) ) .add_xaxis(Faker.choose()) .add_yaxis("淘宝",Faker.values()) .add_yaxis("天猫",Faker.values()) .add_yaxis("京东",Faker.values()) .set_global_opts( # LegendOpts 图例配置项 legend_opts=opts.LegendOpts( type_="plain", # 图例类型 plain普通图例 scroll:滚动翻页图例(图例很多) is_show=True, # 是否显示图例 pos_left="90%", # 图例的位置 orient="veritica", # veritica(垂直)或者horizontal(水平) item_gap=5, # 图例之间的距离 item_width=30, # 图例的宽度 item_height=10, # 图例的高度 # pyecharts常见图标 legend_icon="triangle" ) ) ) bar.render_notebook()
工具箱配置ToolboxOpts
bar = ( Bar( # init_opts:初始化配置项 init_opts=opts.InitOpts( # 画布大小 单位像素 width="700px", height="500px", ) ) .add_xaxis(Faker.choose()) .add_yaxis("淘宝",Faker.values()) .add_yaxis("天猫",Faker.values()) .add_yaxis("京东",Faker.values()) .set_global_opts( # TooltipOpts:提示框配置项 toolbox_opts=opts.ToolboxOpts( is_show=True, pos_right="10" ) ) ) bar.render_notebook()
视觉映射配置VisualMapOpts
bar = ( Bar( # init_opts:初始化配置项 init_opts=opts.InitOpts( # 画布大小 单位像素 width="700px", height="500px", ) ) .add_xaxis(Faker.choose()) .add_yaxis("淘宝",Faker.values()) .add_yaxis("天猫",Faker.values()) .add_yaxis("京东",Faker.values()) .set_global_opts( # VisualMapOpts:视觉映射 visualmap_opts=opts.VisualMapOpts( is_show=True, # 显示映射条 type_="color", # color颜色 size大小 min_=0, max_=150, range_opacity=0.8, # 透明度 range_text=["mix","min"], # 最大最小值文本 range_color=["blue","green","red"], #过度值颜色 orient="horizontal", # 对齐方式# veritica(垂直)或者horizontal(水平) is_piecewise=True #分段展示 ) ) ) bar.render_notebook()
提示框配置:TooltipOpts
bar = ( Bar( # init_opts:初始化配置项 init_opts=opts.InitOpts( # 画布大小 单位像素 width="700px", height="500px", ) ) .add_xaxis(Faker.choose()) .add_yaxis("淘宝",Faker.values()) .add_yaxis("天猫",Faker.values()) .add_yaxis("京东",Faker.values()) .set_global_opts( # TooltipOpts:提示框配置项(这里面的设置都是提示框的) tooltip_opts=opts.TooltipOpts( is_show=True, # 是否显示内容 trigger_on="click", #触发事件: mousemove 鼠标移动 / click 鼠标点击 formatter="{a}:{b}:{c}", # 内容格式:a-系列名 b-数据名 c-值 background_color="red", # 背景颜色 border_color="green", # 边框颜色 border_width=2, # 边框宽度 ) ) ) bar.render_notebook()
区域缩放配置:DataZoomOpts
bar = ( Bar( # init_opts:初始化配置项 init_opts=opts.InitOpts( # 画布大小 单位像素 width="700px", height="500px", ) ) .add_xaxis(Faker.choose()) .add_yaxis("淘宝",Faker.values()) .add_yaxis("天猫",Faker.values()) .add_yaxis("京东",Faker.values()) .set_global_opts( # DataZoomOpts:区域缩放配置项. datazoom_opts=opts.DataZoomOpts( is_show=True, # 开启区域缩放 type_= "slider", # 托条的类型 slider 和 inside(这个要用鼠标滚动,不好玩) is_realtime=True, # 拖动是否实时跟新. range_start=20, # 拖动起始位置 单位百分比 range_end=80, # 拖动结束位置 单位百分比 is_zoom_lock=True # 是否锁定拖拽区域.(能否放大放小) ) ) ) bar.render_notebook()