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写的ARP攻击代码实例
Jun 04 Python
Python常见字符串操作函数小结【split()、join()、strip()】
Feb 02 Python
python实现电脑自动关机
Jun 20 Python
使用Python+wxpy 找出微信里把你删除的好友实例
Feb 21 Python
Python使用reportlab模块生成PDF格式的文档
Mar 11 Python
python multiprocessing多进程变量共享与加锁的实现
Oct 02 Python
Python高级特性之闭包与装饰器实例详解
Nov 19 Python
利用Python绘制Jazz网络图的例子
Nov 21 Python
详解python with 上下文管理器
Sep 02 Python
Django中和时区相关的安全问题详解
Oct 12 Python
Python带你从浅入深探究Tuple(基础篇)
May 15 Python
Python使用永中文档转换服务
May 06 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
在线短消息收发的程序,不用数据库
2006/10/09 PHP
PHP中对数据库操作的封装
2006/10/09 PHP
function.inc.php超越php
2006/12/09 PHP
destoon安装出现Internal Server Error的解决方法
2014/06/21 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
Python SQLite3简介
2018/02/22 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
python3 下载网络图片代码实例
2019/08/27 Python
Python csv文件的读写操作实例详解
2019/11/19 Python
python循环输出三角形图案的例子
2019/11/22 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
2020/03/06 Python
使用Python防止SQL注入攻击的实现示例
2020/05/21 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
护士个人自我鉴定
2014/03/24 职场文书
初中班主任评语
2014/04/24 职场文书
欢迎横幅标语
2014/06/17 职场文书
新教师培训心得体会
2014/09/02 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
欢送领导祝酒词
2015/08/12 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python
浅谈Laravel中使用Slack进行异常通知
2021/05/29 PHP