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实现截屏的函数
Jul 26 Python
python查看微信好友是否删除自己
Dec 19 Python
python实现折半查找和归并排序算法
Apr 14 Python
Python开发微信公众平台的方法详解【基于weixin-knife】
Jul 08 Python
Python编程实现二分法和牛顿迭代法求平方根代码
Dec 04 Python
利用pyinstaller将py文件打包为exe的方法
May 14 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
Mar 29 Python
Python使用matplotlib 模块scatter方法画散点图示例
Sep 27 Python
详解Python绘图Turtle库
Oct 12 Python
Python笔记之工厂模式
Nov 20 Python
Python Json数据文件操作原理解析
May 09 Python
Python如何避免文件同名产生覆盖
Jun 09 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实现的简单网络硬盘
2015/07/29 PHP
JavaScript基本概念初级讲解论坛贴的学习记录
2009/02/22 Javascript
Ext 表单布局实例代码
2009/04/30 Javascript
jquery tab插件制作实现代码
2010/06/22 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
深入理解jQuery 事件处理
2016/06/14 Javascript
vue.js中$watch的用法示例
2016/10/04 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
extjs简介_动力节点Java学院整理
2017/07/17 Javascript
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
原生js封装添加class,删除class的实例
2017/11/06 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
Python原始字符串(raw strings)用法实例
2014/10/13 Python
Python中的is和id用法分析
2015/01/26 Python
Python实现的HTTP并发测试完整示例
2020/04/23 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
python实现的AES双向对称加密解密与用法分析
2017/05/02 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
Python实现简单石头剪刀布游戏
2021/01/20 Python
10招!看骨灰级Pythoner玩转Python的方法
2019/04/15 Python
综合素质的自我鉴定
2013/10/07 职场文书
会计专业求职信
2014/08/10 职场文书
警察群众路线整改措施
2014/09/26 职场文书
销售助理岗位职责
2015/02/11 职场文书
敬老院义诊活动总结
2015/05/07 职场文书
辩论赛主持人开场白
2015/05/29 职场文书
法律意见书范文
2015/06/04 职场文书
2015年秋季运动会加油稿
2015/07/22 职场文书
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle
教你使用Python获取QQ音乐某个歌手的歌单
2022/04/03 Python