一、pyecharts 模块介绍

什么是pyecharts:

  • pyecharts 是一个用于生成 Echarts 图表的类库。
  • echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化。pyecharts 是一个用于生成 Echarts 图表的类库。实际上就是 Echarts 与 Python 的对接。
  • 使用 pyecharts 可以生成独立的网页,也可以在 flask , Django 中集成使用。

特性

  • 简洁的 API 设计,使用如丝滑般流畅,支持链式调用
  • 囊括了 30+ 种常见图表,应有尽有
  • 支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab
  • 可轻松集成至 Flask,Django 等主流 Web 框架
  • 高度灵活的配置项,可轻松搭配出精美的图表
  • 详细的文档和示例,帮助开发者更快的上手项目
  • 多达 400+ 地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持

更多参考:https://pyecharts.org/#/zh-cn/intro

二、pyecharts包含的图标

  Bar(柱状图/条形图) 
  Bar3D(3D 柱状图) 
  Boxplot(箱形图) 
  EffectScatter(带有涟漪特效动画的散点图) 
  Funnel(漏斗图) 
  Gauge(仪表盘) 
  Geo(地理坐标系) 
  Graph(关系图) 
  HeatMap(热力图) 
  Kline(K线图) 
  Line(折线/面积图) 
  Line3D(3D 折线图) 
  Liquid(水球图) 
  Map(地图) 
  Parallel(平行坐标系) 
  Pie(饼图) 
  Polar(极坐标系) 
  Radar(雷达图) 
  Sankey(桑基图) 
  Scatter(散点图) 
  Scatter3D(3D 散点图) 
  ThemeRiver(主题河流图) 
  WordCloud(词云图)

三、安装pyecharts 模块

1.安装模块

首先在命令行下载 pyecharts 模块

pip3 install pyecharts

说明:

  • 这里要专门说明一下,自从 0.3.2 开始,为了缩减项目本身的体积以及维持 pyecharts 项目的轻量化运行,pyecharts 将不再自带地图 js 文件。如用户需要用到地图图表(Geo、Map),可自行安装对应的地图文件包。

  • 否则在用到这两个包的时候,并能完整的显示地图效果。

    • 全球国家地图: echarts-countries-pypkg (1.9MB): 世界地图和 213 个国家,包括中国地图

    • 中国省级地图: echarts-china-provinces-pypkg (730KB):23 个省,5 个自治区

    • 中国市级地图: echarts-china-cities-pypkg (3.8MB):370 个中国城市

    • windows下通过以下的pip命令安装
      pip install echarts-countries-pypkg
      pip install echarts-china-provinces-pypkg
      pip install echarts-china-cities-pypkg
    • Linux下通过以下的pip命令进行安装
      sudo pip3 install echarts-countries-pypkg
      
      
      sudo pip3 install echarts-china-provinces-pypkg
      
      
      sudo pip3 install echarts-china-cities-pypkg
      
      
      sudo pip3 install echarts-countries-pypkg
      
      
      sudo pip3 install echarts-china-provinces-pypkg
      
      
      sudo pip3 install echarts-china-cities-pypkg

相关函数、参数说明

介绍一些可能用到的基本函数

  • add() 主要方法,用于添加图表的数据和设置各种配置项
  • show_config() 打印输出图表的所有配置项
  • render() 默认将会在根目录下生成一个 render.html 的文件,支持 path 参数,设置文件保存位置,如 render(r"e:my_first_chart.html"),文件用浏览器打开。

基本上所有的图标类型都是这样绘制的:

  1. chart_name = Type()初始化具体类型图表。
  2. add()加数据及配置项。
  3. render() 生成.html文件。

2.查看版本

import pyechartsprint(pyecharts.__version__)    #1.9.0

四、pyecharts 模块的使用

(一)Bar(柱状图/条形图)

1.创建一个简单的柱状图

from pyecharts.charts import Bar
bar = Bar()  # 先得到一个表格对象bar.add_xaxis(["康康","赵总","淘小欣","派大星","骨骨"]) # 设置 X 轴bar.add_yaxis("语文成绩",[100,50,40,28,90])   # 以下都是设置 Y 轴bar.add_yaxis("美术成绩",[120,500,720,8,80])bar.add_yaxis("音乐成绩",[430,500,500,88,60])bar.add_yaxis("计算机成绩",[95,63,70,66,70])bar.add_yaxis("体育成绩",[910,950,700,660,700])bar.render("./transcript.html")  # render 会生成本地 HTML 文件, 默认是当前目录, 也可以传入路径参数

文件用浏览器打开如图所示:

pyecharts 模块的简单使用_pyecharts

2.链式调用

链式调用介绍:
✔在python中是实现链式调用只需要在函数返回对象自己就行了
????原理:上一个方法返回对象,是下一个调用方法的执行对象,依次执行下去,就成了链式调用方法

????链式调用:返回对象自己, 可以再方法后继续接方法class Person():
    def name(self,name):
        self.name=name        return self    def age(self,age):
        self.age=age        return self    def show(self):
        return self.name,self.age
p=Person()print(p.name("淘小欣").age(4).show())  #('淘小欣', 4)

V1 版本开始支持链式调用, pyecharts所有方法均支持链式调用。

from pyecharts.charts import Bar
bar=(
    Bar()
    .add_xaxis(["康康","赵总","淘小欣","派大星","骨骨"])
    .add_yaxis("英语成绩",[22,44,55,88,99,34])
    .add_yaxis("语文成绩", [150,178,190,140,125])
    .add_yaxis("计算机成绩", [100,101.5,99.5,68,78]))bar.render("./soure.html")

浏览器打开如图所示:

pyecharts 模块的简单使用_pyecharts _02

3.添加柱状图的标题和副标题

导入 : options

from pyecharts.charts import Barfrom pyecharts import options as opts
bar=(
    Bar()
    .add_xaxis(["康康","赵总","淘小欣","派大星","骨骨"])
    .add_yaxis("英语成绩",[22,44,55,88,99,34])
    .add_yaxis("语文成绩", [150,178,190,140,125])
    .add_yaxis("计算机成绩", [100,101.5,99.5,68,78])
    .set_global_opts(title_opts=opts.TitleOpts(title="2021年度成绩单"))
    # 或者直接使用字典参数, 使用字典的时候就不需要导入模块
    # .set_global_opts(title_opts={"text": "主标题", "subtext": "副标题"}))bar.render("./soure.html")

图片效果:

pyecharts 模块的简单使用_pyecharts _03

4.渲染出图片

  • 使用 snapshot-selenium 渲染图片
  • 需要先安装 pip3 install selenium 模块, 然后下载 chromedriver.exe, 版本需要和谷歌浏览器版本相同, Chrome://version 可查看版本
  • 目前只支持chrom,Safari浏览器, 把exe放在浏览器安装目录下,把目录加入到环境变量,也可以直接放在Python解释器目录下

pyecharts 模块的简单使用_pyecharts _04

选择合适的版本下载 : http://chromedriver.storage.googleapis.com/index.html

import pyechartsfrom pyecharts.charts import Barfrom pyecharts.render import make_snapshotfrom snapshot_selenium import snapshot

bar = (
    Bar()
    .add_xaxis(["派大星", "海绵宝宝", "章鱼哥", "蟹老板", "痞老板"])
    .add_yaxis("语文分数",[100,50,40,28,90])
    .add_yaxis("数学分数",[120,150,80,8,80])
    .add_yaxis("英语分数",[80,50,50,88,60])
    .add_yaxis("化学分数",[95,63,70,66,70])
    .set_global_opts(title_opts={"text": "蟹堡王", "subtext": "成绩"}))make_snapshot(snapshot, bar.render("./mycharts.html"), "./myecharts.png")

pyecharts 模块的简单使用_pyecharts _05

图片效果:

pyecharts 模块的简单使用_pyecharts _06

5.设置主题

提供的主题有很多, 需要导入 ThemeType, 内置主题类型可查看 pyecharts.globals.ThemeType, 也可以在 Pycharm 中使用 . 查看

pyecharts 模块的简单使用_pyecharts _07

from pyecharts.charts import Barfrom pyecharts import options as optsfrom pyecharts.render import make_snapshotfrom snapshot_selenium import snapshot# 内置主题类型可查看 pyecharts.globals.ThemeTypefrom pyecharts.globals import ThemeType

bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.MACARONS))  # 使用"点"就可以选择
    .add_xaxis(["派大星", "海绵宝宝", "章鱼哥", "蟹老板", "痞老板"])
    .add_yaxis("语文分数",[100,50,40,28,90])
    .add_yaxis("数学分数",[120,150,80,8,80])
    .add_yaxis("英语分数",[80,50,50,88,60])
    .add_yaxis("化学分数",[95,63,70,66,70])
    .set_global_opts(title_opts={"text": "蟹堡王", "subtext": "成绩"}))make_snapshot(snapshot, bar.render("./mycharts.html"), "./myecharts.png")

图片展示:

pyecharts 模块的简单使用_pyecharts _08

6.图标类型

pyecharts 模块的简单使用_pyecharts _09