pyecharts是一款将python与echarts结合的强大的数据可视化工具,本系列文章将为你阐述pyecharts的使用细则,让你对数据进行可视化处理时更加得心应手。这一系列中全部代码在Windows 10系统下基于Python3.7和pyecharts1.9.0实际运行通过。
一、前言
在本系列上一篇文章中笔者介绍了使用pyecharts绘制地理图表的方法,运用pyecharts在绘制地图方面有着特有的优势,能动态且直观的展现出绘制者想在地图中表达的资源信息。在这一期文章里,笔者将介绍使用pyecharts绘制雷达图、词云图、日历图等基本图表。
二、使用实例
在本期文章中,我们需要导入的库有:
from pyecharts.charts import *from pyecharts.components import Tablefrom pyecharts import options as optsfrom pyecharts.commons.utils import JsCodeimport randomimport datetime
雷达图是一种平行坐标图,是一种从同一点开始的轴上表示多个定量或变量的二维图表。雷达图常用于绘制企业经营状况、展现评价指标之间的关系,能够直观地查看各类数据指标及数据变化趋势。
实现代码:
data = [ [66, 91, 123, 78, 82, 67], [89, 101, 45, 88, 86, 75], [86, 93, 101, 84, 35, 73],]radar = (Radar() .add_schema(schema=[ opts.RadarIndicatorItem(name="语文", max_=150), opts.RadarIndicatorItem(name="数学", max_=150), opts.RadarIndicatorItem(name="英语", max_=150), opts.RadarIndicatorItem(name="政治", max_=100), opts.RadarIndicatorItem(name="地理", max_=100), opts.RadarIndicatorItem(name="历史", max_=100), ]) .add('', data))radar.render('雷达图.html')
词云图是一种以各种词汇组成的二维图表,一般用于提取大量文本中的关键字词信息,使读者能一眼扫过词云图便可以明白其主要内容和关键信息,同时也提高了阅读文本的趣味性。
实现代码:
words = [ ("heart", 173), ("no", 365), ("you", 360), ("can", 282), ("yes", 273), ("start", 265), ("hello", 365), ("world", 124), ("PPT", 436), ("frame", 255), ("Hadoop", 666), ("zookeeper", 244), ("goal", 681), ("today", 184), ("Monday", 12), ("last time", 148), ("configuration", 247), ("batter", 182), ("remember", 255), ("to", 150), ("make", 162), ("her", 266), ("in", 60), ("my", 82),]wc = ( WordCloud() .add("", words))wc.render('词云图.html')
日历图是一种能直观显示出对应日期的某个指标取值的动态图表,利用pyecharts中的Calendar方法绘制日历图十分简单。
实现代码:
begin = datetime.date(2021, 1, 1)end = datetime.date(2021, 10, 29)data = [[str(begin + datetime.timedelta(days=i)), random.randint(1000, 1200)] for i in range((end - begin).days + 1)]calendar = ( Calendar() .add("", data,calendar_opts=opts.CalendarOpts(range_="2021")))calendar.render('日历图.html')
饼图用于展现图表中各项的大小与各项总和的比例,常在统计学中应用。
实现代码:
cate = ['meituan','zhifubao','weixin','taobao','jingdong','pinduoduo']data = [123,153,89,107,98,23]pie = (Pie() .add('', [list(z) for z in zip(cate, data)]) )pie.render('饼图.html')
仪表盘图是pyecharts中一种特有图表,模仿汽车仪表盘码速表,生动地展示某项数据的取值。
实现代码:
data = ( '不及格率', 12)gauge = (Gauge() .add("", [data]) )gauge.render('仪表盘图.html')
水球图同样是pyecharts库中一种特色图表,用于展示某一项指标的取值。
实现代码:
liquid = (Liquid() .add("", [0.66, 0.34]) )liquid.render('水球图.html')
平行坐标图用于展示在拥有高维度的评价指标情况下,各个评价对象之间的联系和等级。
实现代码:
data = [ ['301班', 78, 91, 123, 78, 82, 67, "优秀"], ['302班', 89, 101, 127, 88, 86, 75, "良好"], ['303班', 86, 93, 101, 84, 90, 73, "合格"],]parallel = ( Parallel() .add_schema( [ opts.ParallelAxisOpts( dim=0, name="班级", type_="category", data=["301班", "302班", "303班"], ), opts.ParallelAxisOpts(dim=1, name="语文"), opts.ParallelAxisOpts(dim=2, name="数学"), opts.ParallelAxisOpts(dim=3, name="英语"), opts.ParallelAxisOpts(dim=4, name="政治"), opts.ParallelAxisOpts(dim=5, name="历史"), opts.ParallelAxisOpts(dim=6, name="地理"), opts.ParallelAxisOpts( dim=7, name="等级", type_="category", data=["优秀", "良好", "合格"], ), ] ) .add("", data))parallel.render('平行坐标图.html')
旭日图是一种特殊的饼图,能清晰地表达层级和从属关系,在pyecharts中我们使用Sunburst方法绘制。
实现代码:
data = [ {"name": "广东", "children": [ {"name": "广州", "children": [ {"name": "天河区", "value": 55}, {"name": "越秀区", "value": 34}, {"name": "增城区", "value": 66}, ]}, {"name": "东莞", "children": [ {"name": "麻涌镇", "value": 156}, {"name": "望牛墩镇", "value": 134}, ]}, {"name": "汕头", "value": 87}, {"name": "揭阳", "value": 23}, ], }, {"name": "新疆", "children": [ {"name": "乌鲁木齐", "children": [ {"name": "五家渠", "value": 55}, {"name": "昌吉", "value": 78}, {"name": "呼图壁", "value": 34}, ]}, {"name": "阿克苏", "value": 67}, {"name": "克拉玛依", "value": 34}, ], }, {"name": "重庆", "value": 235}]sunburst = (Sunburst() .add("", data_pair=data) )sunburst.render('旭日图.html')
河流图是一种特殊的流图,主要用于表示事件或主题在某一时间段内的变化情况。
实现代码:
cate = ['meituan','zhifubao','weixin','taobao','jingdong','pinduoduo']date_list = ["2021/10/{}".format(i + 1) for i in range(30)]data = [[day, random.randint(10, 50), c] for day in date_list for c in cate]river = ( ThemeRiver() .add( series_name=cate, data=data, singleaxis_opts=opts.SingleAxisOpts(type_="time") ))river.render('河流图.html')
3D散点图,用于展现三维数据在空间中的分布情况。
实现代码:
data = [(random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)) for _ in range(100)]scatter3D = (Scatter3D() .add("", data) )scatter3D.render('3D散点图.html')
3D直方图,用于展示三维数据在空间中的分布情况。
实现代码:
data = [[i, j, random.randint(0, 100)] for i in range(24) for j in range(7)]hour_list = [str(i) for i in range(24)]week_list = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']bar3D = ( Bar3D() .add( "", data, xaxis3d_opts=opts.Axis3DOpts(hour_list, type_="category"), yaxis3d_opts=opts.Axis3DOpts(week_list, type_="category"), zaxis3d_opts=opts.Axis3DOpts(type_="value"), ))bar3D.render_notebook()
以上就是这一期的全部内容,前三期内容笔者介绍了pyecharts库的一些图表的绘制方法,在这一系列的下一篇文章中笔者将介绍pyecharts库中各个函数的配置项,熟练的使用配置项才能创造一个真正属于自己的图表。请各位等待下一期更新。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/60424.html