Fork me on GitHub

pyecharts-1-入门

pyecharts-1-简介

前段时间写了很多关于plotly_express库的内容,从基本的一行代码出各种图,到每个类型图的绘制,再到图形的绘制技巧,内容还是非常的丰富,plotly_express可以说是自己目前见过最棒的库,主要是体现在3点:

  • 代码简洁
  • 图形漂亮,颜色贼好看
  • 动态可视化

不愧是可视化神器😊以后还会继续补充相关内容,特别是plotly_expressdash的结合。从今天开始要写另一个可视化库:pyecharts💪

所有的文章都会是基于官网的资料和示例,以及自己使用的实际案例。

声明

在此郑重声明:接下来关于pyecharts的全部文章都是基于版本V1.7

写这个声明的原因是因为pyecharts有两个版本:

  • V0.5
  • V1.0

它们二者的语法之间是不兼容的,并不存在太多的联系。目前网上很多的教程和博客都是基于V0.5但是V0.5以后团队不会再维护了。

自己曾经在使用这个库的时候,开始没有意识到这个版本的问题,找到的很多文章中的示例代码都不能直接使用,踩过很多的坑,后来才明白是版本的原因。

⚠️将来的所有文章都是基于V1.0

⚠️将来的所有文章都是基于V1.0

⚠️将来的所有文章都是基于V1.0

什么是pyecharts

在此,引用官网上的一段话来介绍什么是pyecharts:

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

说的直白些:pyecharts=python+echarts

特性

高度概括:🐂🍺

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

安装

下面是自己经常安装Python相关库的代码,速度非常快:

1
2
pip install -i https://pypi.douban.com/simple pyecharts==1.7  # 安装pyecharts
pip install -i https://pypi.douban.com/simple pandas # 安装pandas

官方提供的源码安装方式

1
2
3
4
5
$ git clone https://github.com/pyecharts/pyecharts.git
$ cd pyecharts
$ pip install -r requirements.txt
$ python setup.py install
# 或者执行 python install.py

查看版本

1
2
import pyecharts
print(pyecharts.__version__)

5分钟入门

案例

  1. 默认生成render.html文件
1
2
3
4
5
6
7
from pyecharts.charts import Bar  # V1版本的导入类方式!!!!非常关键,看到这种方式才是V1

bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
# render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
bar.render()
  1. 指定文件和路径
1
2
3
4
5
6
7
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家B", [15, 20, 36, 18, 45, 69])

bar.render("firstpyecharts.html") # 也可以传入路径参数
  1. 在notebook中直接出图
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 注意:如果在notebook中不出图,需要添加下面的两行代码
# 只需要在顶部声明 CurrentConfig.ONLINE_HOST 即可
from pyecharts.globals import CurrentConfig, OnlineHostType
# OnlineHostType.NOTEBOOK_HOST 默认值为 http://localhost:8888/nbextensions/assets/
CurrentConfig.ONLINE_HOST = OnlineHostType.NOTEBOOK_HOST
# --------------------------

from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家B", [15, 20, 36, 18, 45, 69])

bar.render_notebook()

链式调用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from pyecharts.charts import Bar
from pyecharts import options as opts

# V1 版本开始支持链式调用

bar = (
Bar()
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
.set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
# 或者直接使用字典参数
# .set_global_opts(title_opts={"text": "主标题", "subtext": "副标题"})
)
bar.render_notebook() # notebook中显示
1
2
3
4
5
6
# 不习惯链式调用的开发者依旧可以单独调用方法
bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
bar.set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
bar.render()

image-20200814003458050

解决不出图

如果notebook中没有出图,解决方法在这里:pyecharts v1.5.1+ 起开始支持 Notebook 插件作为静态资源服务。

  • 获取 pyecharts-assets 项目
1
$ git clone https://github.com/pyecharts/pyecharts-assets.git
  • 安装扩展插件
1
2
3
4
$ cd pyecharts-assets
# 安装并激活插件
$ jupyter nbextension install assets
$ jupyter nbextension enable assets/main
  • 配置 pyecharts 全局 HOST
1
2
3
4
5
# 只需要在顶部声明 CurrentConfig.ONLINE_HOST 即可
from pyecharts.globals import CurrentConfig, OnlineHostType

# OnlineHostType.NOTEBOOK_HOST 默认值为 http://localhost:8888/nbextensions/assets/
CurrentConfig.ONLINE_HOST = OnlineHostType.NOTEBOOK_HOST

主题

示例

内置主题类型可查看 pyecharts.globals.ThemeType

1
2
3
4
5
6
7
8
9
10
11
12
13
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType

bar = (
Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) # 初始化的时候指定主题
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
.add_yaxis("商家B", [15, 6, 45, 20, 35, 66])
.set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
)

bar.render_notebook()

image-20200814004652897

主题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
thm = '''
| CHALK = 'chalk' #粉笔风
|
| DARK = 'dark' #暗黑风
|
| ESSOS = 'essos' #厄索斯大陆
|
| INFOGRAPHIC = 'infographic' #信息图
|
| LIGHT = 'light' #明亮风格
|
| MACARONS = 'macarons' #马卡龙
|
| PURPLE_PASSION = 'purple-passion' #紫色激情
|
| ROMA = 'roma' #石榴
|
| ROMANTIC = 'romantic' #浪漫风
|
| SHINE = 'shine' #闪耀风
|
| VINTAGE = 'vintage' #复古风
|
| WALDEN = 'walden' #瓦尔登湖
|
| WESTEROS = 'westeros' #维斯特洛大陆
|
| WHITE = 'white' #洁白风
|
| WONDERLAND = 'wonderland' #仙境
'''

本文标题:pyecharts-1-入门

发布时间:2020年08月14日 - 00:08

原始链接:http://www.renpeter.cn/2020/08/14/pyecharts-1-%E5%85%A5%E9%97%A8.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Coffee or Tea