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格式化css文件的方法
Mar 10 Python
Python使用time模块实现指定时间触发器示例
May 18 Python
python3.6连接MySQL和表的创建与删除实例代码
Dec 28 Python
python 3.7.0 下pillow安装方法
Aug 27 Python
python运行时强制刷新缓冲区的方法
Jan 14 Python
Python中的几种矩阵乘法(小结)
Jul 10 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
Django 响应数据response的返回源码详解
Aug 06 Python
python使用 cx_Oracle 模块进行查询操作示例
Nov 28 Python
Python图像阈值化处理及算法比对实例解析
Jun 19 Python
python实现视频压缩功能
Dec 18 Python
python 详解turtle画爱心代码
Feb 15 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
一个改进的UBB类
2006/10/09 PHP
PHP中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
php 图片上添加透明度渐变的效果
2009/06/29 PHP
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
php打开远程文件的方法和风险及解决方法
2013/11/12 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
关于javascript中的parseInt使用技巧
2009/09/03 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
node.js实现逐行读取文件内容的代码
2014/06/27 Javascript
Node.js开源应用框架HapiJS介绍
2015/01/14 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
2016/04/05 Javascript
jQuery对table表格进行增删改查
2020/12/22 Javascript
微信小程序上线发布流程图文详解
2019/05/06 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
Pandas中把dataframe转成array的方法
2018/04/13 Python
python try 异常处理(史上最全)
2019/03/07 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
Python视频编辑库MoviePy的使用
2020/04/01 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
Django admin组件的使用
2020/10/24 Python
python字典按照value排序方法
2020/12/28 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
普通话宣传标语
2014/06/26 职场文书
篮球社团活动总结
2014/06/27 职场文书
亮剑观后感600字
2015/06/05 职场文书
新学期家长寄语2016
2015/12/03 职场文书
python中%格式表达式实例用法
2021/06/18 Python
一些让Python代码简洁的实用技巧总结
2021/08/23 Python