Python数据可视化 pyecharts实现各种统计图表过程详解


Posted in Python onAugust 15, 2019

1、pyecharts介绍

Echarts是一款由百度公司开发的开源数据可视化JS库,pyecharts是一款使用python调用echarts生成数据可视化的类库,可实现柱状图,折线图,饼状图,地图等统计图表。

2、柱状图

适用场合是二维数据集(每个数据点包括两个值x和y),但只有一个维度需要比较,用于显示一段时间内的数据变化或显示各项之间的比较情况。

优点: 利用柱子的高度,反映数据的差异,肉眼对高度差异很敏感。

缺点: 只适用中小规模的数据集。

柱状图最基本用法

from pyecharts import Bar
fruits = ['苹果','香蕉','凤梨','桔子','橙','桃子']
sales = [18888,20023,30989,8873,29876,5409]
bar = Bar('水果销售情况')
bar.add('',fruits,sales,is_stack=True)
(bar.render())

Python数据可视化 pyecharts实现各种统计图表过程详解

add()方法用于添加数据。

当要比较不同商家水果销量情况,只需多次调用add()方法:

from pyecharts import Bar
fruits = ['苹果','香蕉','凤梨','桔子','橙','桃子']
shop1_sales = [8888,3323,6989,8873,3876,15409]
bar = Bar('水果销售情况')
bar.add('商家A',fruits,shop1_sales,is_stack=False)
shop2_sales = [4888,7023,3989,5873,8876,6409]
bar.add('商家B',fruits,shop2_sales,is_stack=False)
bar.render()

Python数据可视化 pyecharts实现各种统计图表过程详解

如果想在数据叠加显示,只需将is_stack参数设置为True

from pyecharts import Bar
fruits = ['苹果','香蕉','凤梨','桔子','橙','桃子']
shop1_sales = [8888,3323,6989,8873,3876,15409]
bar = Bar('水果销售情况')
bar.add('商家A',fruits,shop1_sales,is_stack=True)
shop2_sales = [4888,7023,3989,5873,8876,6409]
bar.add('商家B',fruits,shop2_sales,is_stack=True)
bar.render()

Python数据可视化 pyecharts实现各种统计图表过程详解

下面是柱状图中常用方法和属性介绍:

(1)add()方法中根据is_stack可以设定柱形图是否叠加显示

(2)is_more_utils=True 参数来设置最右侧工具栏,对生成的图进行更多的操作,如将柱形图更改为折线图等

(3)标记的使用:mark_point=[‘average']标记点,平均值;mark_line=[‘min','max','average']标记线,最大值、最小值和平均值

(4)横向柱形图:is_convert=True,标识交换X轴和Y轴

3、折线图

常用折线图来描绘统计事项总体指标的动态、研究对象间的依存关系以及总体中各部分的分配情况等。

# 普通折线图
fruits = ['苹果','香蕉','凤梨','桔子','橙','桃子']
shop1_sales = [8888,3323,6989,8873,3876,15409]
shop2_sales = [4888,7023,3989,5873,8876,6409]

line = Line('折线图')
line.add('商家A', fruits, shop1_sales, mark_point=['max'])
line.add('商家B', fruits, shop2_sales, mark_point=['min'])
line.show_config()
line.render()

Python数据可视化 pyecharts实现各种统计图表过程详解

line()方法中有个is_smooth的参数,将参数的值设置为True,折线图的线条会以圆滑的趋势变化,不像上图那样以直线的方式变化。

# 普通折线图
fruits = ['苹果','香蕉','凤梨','桔子','橙','桃子']
shop1_sales = [8888,3323,6989,8873,3876,15409]
shop2_sales = [4888,7023,3989,5873,8876,6409]

line = Line('折线图')
line.add('商家A', fruits, shop1_sales, mark_point=['max'])
line.add('商家B', fruits, shop2_sales, mark_point=['min'], is_smooth=True)
line.show_config()
line.render()

Python数据可视化 pyecharts实现各种统计图表过程详解

上图的商家A设置了is_smooth参数的值为True,商家B没有设置is_smooth属性。可以看到商家B的折线是以圆滑的趋势变化的。

最常用的还有阶梯折线图和面积折线图。

阶梯折线图

将line()方法的is_step参数设置为True。

fruits = ['苹果','香蕉','凤梨','桔子','橙','桃子']
shop2_sales = [4888,7023,3989,5873,8876,6409]

line = Line('折线图')
line.add('商家B', fruits, shop2_sales, mark_point=['min'], is_step=True)
line.show_config()
line.render()

Python数据可视化 pyecharts实现各种统计图表过程详解

面积折线图

fruits = ['苹果','香蕉','凤梨','桔子','橙','桃子']
shop2_sales = [4888,7023,3989,5873,8876,6409]
shop1_sales = [8888,3323,6989,8873,3876,15409]
line3 =Line("面积折线图")
line3.add("商家A", fruits, shop1_sales, is_fill=True, line_opacity=0.2,  area_opacity=0.4, symbol=None, mark_point=['max'])
line3.add("商家B", fruits, shop2_sales, is_fill=True, area_color='#a3aed5', area_opacity=0.3, is_smooth=True)
line3.show_config()
line3.render()

Python数据可视化 pyecharts实现各种统计图表过程详解

柱状图-折线图

在柱状图上显示折线图也是常用的统计图表。需要借助Overlap类实现。

from pyecharts import Bar, Line, Overlap
fruits = ['苹果','香蕉','凤梨','桔子','橙','桃子']

shop1_sales = [8888,3323,6989,8873,3876,15409]
shop2_sales = [4888,7023,3989,5873,8876,6409]

bar = Bar("柱形图-折线图")
bar.add('bar', fruits, shop1_sales)
line = Line()
line.add('line', fruits, shop2_sales)

overlap = Overlap()
overlap.add(bar)
overlap.add(line)
overlap.show_config()
overlap.render()

Python数据可视化 pyecharts实现各种统计图表过程详解

4、饼图

饼图可以比较清楚地反映出部分与部分、部分与整体之间的数量关系.易于显示每组数据相对于总数的大小.而且显现方式直观.

from pyecharts import Pie
fruits = ['苹果','香蕉','凤梨','桔子','橙','桃子']
shop1_sales = [8888,3323,6989,8873,3876,15409]
pie = Pie('饼图')
pie.add('芝麻饼', fruits, shop1_sales, is_label_show=True)
pie.show_config()
pie.render()

Python数据可视化 pyecharts实现各种统计图表过程详解

玫瑰花样式饼图

pie2 = Pie("饼图-玫瑰图示例", title_pos='center', width=900)
pie2.add("商家A", fruits, shop1_sales, center=[25, 50], is_random=True, radius=[25, 60], rosetype='radius')
pie2.add("商家B", fruits, shop2_sales, center=[75, 50], is_random=True, radius=[25, 60], rosetype='area', is_legend_show=False, is_label_show=True)
pie2.show_config()
pie2.render()

Python数据可视化 pyecharts实现各种统计图表过程详解

5、散点图

散点图又称散点分布图,是以一个变量为横坐标,另一变量为纵坐标,利用散点(坐标点)的分布形态反映变量统计关系的一种图形。特点是能直观表现出影响因素和预测对象之间的总体关系趋势。

静态散点图

from pyecharts import Scatter
scatter =Scatter("散点图示例")
scatter.add("A", shop1_sales, shop2_sales)
scatter.add("B", shop1_sales[::-1], shop2_sales)
scatter.show_config()
scatter.render()

Python数据可视化 pyecharts实现各种统计图表过程详解

动态散点图

from pyecharts import EffectScatter
v1 =[5, 20, 36, 10, 10, 100]
v2 =[55, 60, 16, 20, 15, 80]

# 动态散点图
es =EffectScatter("动态散点图")

# v1 x坐标 v2 y坐标
es.add('苹果', v1, v2)
es.show_config()
es.render()

Python数据可视化 pyecharts实现各种统计图表过程详解

各种图形动态散点图

from pyecharts import EffectScatter
es = EffectScatter("动态散点图各种图形")
es.add("", [10], [10], symbol_size=20, effect_scale=3.5, effect_period=3, symbol="pin")
es.add("", [20], [20], symbol_size=12, effect_scale=4.5, effect_period=4,symbol="rect")
es.add("", [30], [30], symbol_size=30, effect_scale=5.5, effect_period=5,symbol="roundRect")
es.add("", [40], [40], symbol_size=10, effect_scale=6.5, effect_brushtype='fill',symbol="diamond")
es.add("", [50], [50], symbol_size=16, effect_scale=5.5, effect_period=3,symbol="arrow")
es.add("", [60], [60], symbol_size=6, effect_scale=2.5, effect_period=3,symbol="triangle")
es.show_config()
es.render()

Python数据可视化 pyecharts实现各种统计图表过程详解

以上是使用pyecharts实现柱状图、折线图、散点图和饼图的统计图表。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
Jun 10 Python
Python用GET方法上传文件
Mar 10 Python
在Python中使用M2Crypto模块实现AES加密的教程
Apr 08 Python
python 实现上传图片并预览的3种方法(推荐)
Jul 14 Python
python字典DICT类型合并详解
Aug 17 Python
python基础练习之几个简单的游戏
Nov 10 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
Dec 12 Python
对django后台admin下拉框进行过滤的实例
Jul 26 Python
python字典的常用方法总结
Jul 31 Python
Django与pyecharts结合的实例代码
May 13 Python
Python如何获取文件路径/目录
Sep 22 Python
如何实现一个python函数装饰器(Decorator)
Oct 12 Python
浅谈Python 敏感词过滤的实现
Aug 15 #Python
pycharm创建scrapy项目教程及遇到的坑解析
Aug 15 #Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 #Python
Python依赖包整体迁移方法详解
Aug 15 #Python
使用python批量修改文件名的方法(视频合并时)
Mar 24 #Python
python 修改本地网络配置的方法
Aug 14 #Python
python django 原生sql 获取数据的例子
Aug 14 #Python
You might like
php设计模式 Template (模板模式)
2011/06/26 PHP
一个PHP实现的轻量级简单爬虫
2015/07/08 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
让textarea自动调整大小的js代码
2011/04/12 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
Boostrap模态窗口的学习小结
2016/03/28 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
详解JavaScript对象的深浅复制
2017/03/30 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
JavaScript实现的斑马线表格效果【隔行变色】
2017/09/18 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
nodejs对项目下所有空文件夹创建gitkeep的方法
2019/08/02 NodeJs
Python开发编码规范
2006/09/08 Python
python解析模块(ConfigParser)使用方法
2013/12/10 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
python实现简单神经网络算法
2018/03/10 Python
python邮件发送smtplib使用详解
2020/06/16 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
如何更优雅地写python代码
2019/07/02 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
物流管理应届生求职信
2013/11/07 职场文书
初中三年学生的学习自我评价
2013/11/13 职场文书
护理毕业生自荐信范文
2013/12/22 职场文书
代办出身证明书
2014/10/21 职场文书
2014超市收银员工作总结
2014/11/13 职场文书
教师先进事迹材料
2014/12/16 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android