可视化工具之pyecharts

一、pyecharts基础

1、概述

Pyecharts是一款将python与echarts结合的强大的数据可视化工具。使用 pyecharts 可以生成独立的网页,也可以在 flask , Django 中集成使用。

echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化。pyecharts 是一个用于生成

Echarts 图表的类库,实际上就是 Echarts 与 Python 的对接。

2、图表类型

在pyecharts中,根据图表的调用方法、数据源格式的不一样,可大致分为以下几类:

直角坐标系图表:如折线图、柱状图、散点图、箱形图、热力图、K线图等;

地理坐标系图表:如Geo(地理坐标图)、Map(区域地图)、BMap(百度地图)等;

树型图表:如树图、矩形树图等;

3D图表:如3D柱状图、3D折线图、3D曲面图等;

组合图表:如时间线轮播多图、顺序多图、并行多图等;

其他图表:如日历图、漏斗图、仪表盘、饼图、极坐标图、雷达图、旭日图、词云等;

用户自定义的图表:

Grid 类:并行显示多张图

Overlap 类:结合不同类型图表叠加画在同张图上

Page 类:同一网页按顺序展示多图

Timeline 类:提供时间线轮播多张图

3、示例

本文采用的pyechart版本是pyechart==1.7.1。

from pyecharts.charts import Bar, Pie, Line, Scatter, Bar3D, Gauge, Radar, WordCloud
import pyecharts.options as opts
import os

(1)柱状图-Bar


attr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
v1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
v2 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.8, 48.7, 18.8, 6.0, 2.3]
bar = Bar()
bar.set_global_opts(title_opts=opts.TitleOpts('柱状图'))
bar.add_xaxis(attr)
# 画平均线,标记最大最小值
bar.add_yaxis("蒸发量",
v1,
markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='average', name='平均值')]),
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max', name='最大值'),
opts.MarkPointItem(type_='min', name='最小值')]))
bar.add_xaxis(attr)
# 画平均线,标记最大最小值
bar.add_yaxis("降水量",
v2,
markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_='average', name='平均值')]),
markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_='max', name='最大值'),
opts.MarkPointItem(type_='min', name='最小值')]))
# bar.reversal_axis() # x 轴和 y 轴交换
bar.render("a.html")
# os.system("a.html")

 

(2)饼图-Pie

普通饼图
attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [11, 12, 13, 10, 10, 10]
pie = Pie()
pie.set_global_opts(legend_opts=opts.LegendOpts(pos_bottom='bottom'),
title_opts=opts.TitleOpts(title='饼图实例1', pos_left='center', pos_right='center',
title_textstyle_opts=opts.TextStyleOpts(font_size=40)))
pie.add('', [list(z) for z in zip(attr, v1)], label_opts=opts.LabelOpts(is_show=True,formatter='{b} {d}%'))
pie.render('c.html')
# os.system("c.html")

南丁格尔玫瑰图
attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [11, 12, 13, 10, 10, 10]
v2 = [19, 21, 32, 20, 20, 33]
pie = Pie(init_opts=opts.InitOpts(width="900px"))
pie.set_global_opts(legend_opts=opts.LegendOpts(pos_bottom='bottom'),
title_opts=opts.TitleOpts(title='饼图实例2-玫瑰图示例', pos_left='center', pos_right='center',
title_textstyle_opts=opts.TextStyleOpts(font_size=40)))
# center饼图圆心坐标,radius两个半径分别为内外半径
# rosetype为是否展示成南丁格尔图( 'radius' 圆心角展现数据百分比,半径展现数据大小;'area' 圆心角相同,为通过半径展现数据大小)
pie.add('商品A', [list(z) for z in zip(attr, v1)], center=['25%', '50%'], radius=['30%', '50%'], rosetype='radius')
pie.add('商品B', [list(z) for z in zip(attr, v2)], center=['75%', '50%'], radius=['30%', '50%'], rosetype='area',
label_opts=opts.LabelOpts(is_show=True))
# pie.show_config()
pie.render()
# os.system("render.html")

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值