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

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())

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()

如果想在数据叠加显示,只需将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()

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

(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()

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()

上图的商家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()

面积折线图

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()

柱状图-折线图

在柱状图上显示折线图也是常用的统计图表。需要借助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()

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()

玫瑰花样式饼图

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()

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()

动态散点图

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()

各种图形动态散点图

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()

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

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

时间: 2019-08-14

使用Python绘制图表大全总结

在使用Python绘制图表前,我们需要先安装两个库文件numpy和matplotlib. Numpy是Python开源的数值计算扩展,可用来存储和处理大型矩阵,比Python自身数据结构要高效:matplotlib是一个Python的图像框架,使用其绘制出来的图形效果和MATLAB下绘制的图形类似. 下面我通过一些简单的代码介绍如何使用 Python绘图. 一.图形绘制 直方图 importmatplotlib.pyplotasplt importnumpyasnp mu=100 sigma=2

基于Python安装pyecharts所遇的问题及解决方法

最近学习到数据可视化内容,老师推荐安装pyecharts,于是pip install 了一下,结果...掉坑了,下面是我的跳坑经验,如果你有类似问题,希望对你有所帮助. 第一个坑: 这个不难理解,缺少pyecharts-jupyter-installer嘛,那就安一个呗.可能有人注意到,我使用的是python2 -m pip ...(这种写法是为了解决python 2和3共存时pip的冲突问题,具体解释在本页最后.) 本以为结束了,却掉进了第二个坑: 看到这个,很明显是安装MarkupSafe时

Flask使用Pyecharts在单个页面展示多个图表的方法

在Flask页面展示echarts,主要有两种方法: 方法1.原生echarts方法 自己在前端引入echarts.js文件.自己创建div.自己初始化echarts对象.自己从官网复制并且配置图表.自己给echarts对象设置配置项实现绘制,这种方法的缺点是配置项都是js的形式比较繁琐,对于后端开发人员来说有点过于参与前端js部分的配置开发: 这种方式参照echarts官网的方式,其实跟flask没有多大关系,php/java不同后端语言都一样,地址 方法2:使用pyecharts pyech

详解用pyecharts Geo实现动态数据热力图城市找不到问题解决

pyecharts 是一个用于生成 Echarts 图表的类库. Echarts 是百度开源的一个数据可视化 JS 库.主要用于数据可视化. 本文主要是用pycharts中的Geo绘制中国地图,在图中显示出各个地区的人均销售额 传入的数据形如:[('上海',30), ('北京',50), ... ...] li=[] for i,row in filtered.iterrows(): li.append((row['city'],int(row['per_capita']))) geo = Ge

使用python绘制常用的图表

本文介绍如果使用python汇总常用的图表,与Excel的点选操作相比,用python绘制图表显得比较比较繁琐,尤其提现在对原始数据的处理上.但两者在绘制图表过程中的思路大致相同,Excel中能完成的工作python大多也能做到.为了更清晰的说明使用python绘制图表的过程,我们在汇总图表的代码中进行注解,说明每一行代码的具体作用.并在文章的最后给出了自定义字体和图表配色的对应表. 准备工作 import numpy as np import pandas as pd #导入图表库以进行图表绘

Python 数据可视化pyecharts的使用详解

什么是pyecharts? pyecharts 是一个用于生成 Echarts 图表的类库. echarts是百度开源的一个数据可视化 JS 库,主要用于数据可视化.pyecharts 是一个用于生成 Echarts 图表的类库.实际上就是 Echarts 与 Python 的对接. 使用 pyecharts可以生成独立的网页,也可以在 flask , Django中集成使用. pyecharts包含的图表 Bar(柱状图/条形图) Bar3D(3D 柱状图) Boxplot(箱形图) Effe

如何利用Pyecharts可视化微信好友

前言 最近在研究 pyecharts  的用法,它是 python 的一个可视化工具,然后就想着结合微信来一起玩 不多说,直接看效果: 环境配置 pip install pyecharts pip install snapshot_selenium pip install echarts-countries-pypkg pip install echarts-china-provinces-pypkg pip install echarts-china-cities-pypkg pip inst

python 微信好友特征数据分析及可视化

一.背景及研究现状 在我国互联网的发展过程中,PC互联网已日趋饱和,移动互联网却呈现井喷式发展.数据显示,截止2013年底,中国手机网民超过5亿,占比达81%.伴随着移动终端价格的下降及wifi的广泛铺设,移动网民呈现爆发趋势. 微信已经成为连接线上与线下.虚拟与现实.消费与产业的重要工具,它提高了O2O类营销用户的转化率.过去开发软件,程序员常要考虑不同开发环境的语言.设备的适配性和成本.现在,开发者可以在一个"类操作底层"去开发应用,打破了过去受限的开发环境. 二.研究意义及目的

Python实现的微信好友数据分析功能示例

本文实例讲述了Python实现的微信好友数据分析功能.分享给大家供大家参考,具体如下: 这里主要利用python对个人微信好友进行分析并把结果输出到一个html文档当中,主要用到的python包为itchat,pandas,pyecharts等 1.安装itchat 微信的python sdk,用来获取个人好友关系.获取的代码 如下: import itchat import pandas as pd from pyecharts import Geo, Bar itchat.login() f

利用pyecharts实现地图可视化的例子

pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图. 今天我们就用pyecharts和jupyter notebook实现地图数据的可视化. pyecharts v0.3.2以后,pyecharts 将不再自带地图 js 文件.如用户需要用到地图图表,可自行安装对应的地图文件包. 下面介绍

利用Python查看微信共同好友功能的实现代码

总有思路清奇的朋友存在,想实现查看微信共同好友: 由于之前分享的代码有获取过微信好友头像,所以当时第一反应是通过itchat微信接口获取好友信息,比对两个人的好友信息列表就可以实现了.按理说这么简单的话,应该早有现成的代码了,然而并没有搜到,那正好,拿来练练手! 先放最终结果图: 思路 首先通过itchat这个微信个人号接口扫码登录个人微信网页版,获取可以识别好友身份的数据.这里是需要分别登录两人微信的,拿到两人各自的好友信息存到列表中. 这样一来,查共同好友就转化成了查两个列表中相同元素的问题

利用pyecharts读取csv并进行数据统计可视化的实现

因为需要一个html形式的数据统计界面,所以做了一个基于pyecharts包的可视化程序,当然matplotlib还是常用的数据可视化包,只不过各有优劣:基本功能概述就是读取csv文件数据,对每列进行数据统计并可视化,最后形成html动态界面,选择pyecharts的最主要原因就是这个动态界面简直非常炫酷. 先上成品图: 数据读取和数据分析模块: #导入csv模块 import csv #导入可视化模块 from matplotlib import pyplot as plt from pyla

Python利用itchat对微信中好友数据实现简单分析的方法

前言 最近在一个微信公众号上看到一个调用微信 API 可以对微信好友进行简单数据分析的一个包 itchat 感觉挺好用的,就简单尝试了一下. 库文档说明链接在这: itchat 安装 在终端中输入以下命令,完成微信的API包itchat的安装. 我们这里使用python3的环境(python2也是可行的): sudo pip3 install itchat --upgrade 通过该命令判断是否安装成功: python3 -c "import itchat" 如果没有报错信息说明你已经

基于python实现微信好友数据分析(简单)

一.功能介绍 本文主要介绍利用网页端微信获取数据,实现个人微信好友数据的获取,并进行一些简单的数据分析,功能包括: 1.爬取好友列表,显示好友昵称.性别和地域和签名, 文件保存为 xlsx 格式 2.统计好友的地域分布,并且做成词云和可视化展示在地图上 二.依赖库 1.Pyecharts:一个用于生成echarts图表的类库,echarts是百度开源的一个数据可视化库,用echarts生成的图可视化效果非常棒,使用pyechart库可以在python中生成echarts数据图. 2.Itchat

基于Python实现的微信好友数据分析

最近微信迎来了一次重要的更新,允许用户对"发现"页面进行定制.不知道从什么时候开始,微信朋友圈变得越来越复杂,当越来越多的人选择"仅展示最近三天的朋友圈",大概连微信官方都是一脸的无可奈何.逐步泛化的好友关系,让微信从熟人社交逐渐过渡到陌生人社交,而朋友圈里亦真亦幻的状态更新,仿佛在努力证明每一个个体的"有趣". 有人选择在朋友圈里记录生活的点滴,有人选择在朋友圈里展示观点的异同,可归根到底,人们无时无刻不在窥探着别人的生活,唯独怕别人过多地了解

利用python实现微信头像加红色数字功能

通过Python实现将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 实现过程: 准备两张图片如下:   使用PIL图像处理库,导入moudle from PIL import Image from PIL import ImageFont from PIL import ImageDraw def white_to_transparent(img): img=img.convert('RGBA') #返回一个转换后的图像的副本 dat