Pyecharts入门教程
本文介绍的是一个国产可视化库Pyecharts库的快速入门,主要内容包含:
- Pyecharts库及特点
- 多样主题
- 快速入门
- 绘制K线图
- 绘制柱状图
- 绘制饼图
所有的文章都会是基于官网的资料和示例,以及自己使用的实际案例。
声明
在此郑重声明:接下来关于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 | pip install -i https://pypi.douban.com/simple pyecharts==1.7 # 安装pyecharts |
官方提供的源码安装方式
1 | $ git clone https://github.com/pyecharts/pyecharts.git |
查看版本
1 | import pyecharts |
官网demo
案例
- 默认生成
render.html
文件
1 | from pyecharts.charts import Bar # V1版本的导入类方式!!!!非常关键,看到这种方式才是V1 |
- 指定文件和路径
1 | from pyecharts.charts import Bar |
- 在notebook中直接出图
1 | # 注意:如果在notebook中不出图,需要添加下面的两行代码 |
链式调用
1 | from pyecharts.charts import Bar |
1 | # 不习惯链式调用的开发者依旧可以单独调用方法 |
解决不出图
如果notebook中没有出图,解决方法在这里:pyecharts v1.5.1+ 起开始支持 Notebook 插件作为静态资源服务。
- 获取 pyecharts-assets 项目
1 | git clone https://github.com/pyecharts/pyecharts-assets.git |
- 安装扩展插件
1 | cd pyecharts-assets |
- 配置 pyecharts 全局 HOST
1 | # 只需要在顶部声明 CurrentConfig.ONLINE_HOST 即可 |
主题
内置主题类型可查看 pyecharts.globals.ThemeType
1 | from pyecharts.charts import Bar |
下面是目前官网提供支持的主题:
1 | thm = ''' |
绘制K线图
下面介绍的是使用Pyecharts绘制股票K线图
什么是K线
引用一段来自维基百科的解释:
K线(Candlestick chart)又称“阴阳烛”、“蜡烛线”,是反映价格走势的一种图线,其特色在于一个线段内记录了多项讯息,相当易读易懂且实用有效,广泛用于股票、期货、贵金属、数字货币等行情的技术分析,称为K线分析。
据传K线为日本江户时代的白米商人本间宗久所发明,用来记录每日的米市行情,研析期货市场。日语中K线称为“蜡烛足(日语:ローソク足)”。
蜡烛线的英文是candlestick chart,日文片假名为キャンドル スティック(KYANDORU SUTIKKU),故中文也称之为K线。
根据每个股每天的:开盘价、最低价、最高价和收盘价绘制的一种走势图线,从中找出个股的规律
获取数据
连接数据直接获取数据
原始数据
1 | data = [] |
时间转化
在pyecharts中绘制K线图的时候,时间格式使用的是年-月-日
的格式,所以需要先对上面的数据进行处理。
上面的数据只是字符串类型:
- 使用to_datetime()方法转化成时间类型的数据,format参数指定我们想要的格式
- 通过匿名函数将上一步的时间数据再转成最终的时间格式数据
1 | df_stock['trade_date'] = pd.to_datetime(df_stock['trade_date'], format ='%Y-%m-%d') |
划分代码和证券交易所
将股票代码和证券交易所的代号分开
使用匿名函数和分割函数进行处理,取出相应的数据,增加code
和exchange
两个字段
个股数据量
查看每个股在规定时间范围内的数据量
1 | stock_list = df_stock['code'].value_counts().reset_index().rename(columns={'index':'code','code':'number'}) |
绘图
以深证的000001股票为例绘制K线图,下图为数据量:
指定在某个时间段内绘制:
1 | # 使用&,不要用and |
生成列表类型数据
将open、close、low、high
的4个数据放在一个列表,代表一天的完整数据,再将每天的数据组成新的大列表。
绘图
将上面得到的完整数据导入官网的代码示例中:
1 | c = ( |
结果如下图:
绘制柱状图
下面介绍的是如何利用pyecharts绘制各种bar柱状图。主要是参考官网的各种例子进行学习和整理
数值+百分比
在柱状图中同时显示数值和百分比,能够对比不同的组之间的数据
1 | list2 = [ |
x轴标题斜体
解决x轴标题很长的问题
1 | c = ( |
堆叠柱状图-stack
1 | c = ( |
通过字典设置主副标题
1 | c = ( |
加入工具栏目
右上角的工具栏进行多种操作
1 | c = ( |
设置xy轴名称
1 | c = ( |
垂直缩放
按照数值大小进行滑动
1 | c = ( |
水平缩放
1 | c = ( |
双边滑动(水平方向)
1 | c = ( |
绘制直方图
1 | c = ( |
水平柱状图
1 | c = ( |
1 | c = ( |
多个指标联动
来自官网的案例
绘制饼图
饼图在实际的工作还是会经常使用,能够很清晰的显示各类数据和占比情况,曾经在工作中绘制了环饼图和多饼图的结合。本文中介绍的是如何利用Pyecharts
绘制饼图和进阶的环状饼图和玫瑰图
- 基本案例
- 位置和颜色
- 图例滚动
- 环形饼图
- 多饼图
- 玫瑰图
导入库
基本案例
下面是一份模拟的月度开支的数据
1 | c = ( |
改变位置和颜色
1 | c = ( |
图例滚动
当饼图中图例比较多的时候,可以利用滚动的方式,下面是pyecharts自带的数据集:
1 | c = ( |
环形饼图
1 | x_data = ["直接访问", "邮件营销", "联盟广告", "视频广告", "搜索引擎"] |