第24卷第1期沙洲职业工学院学报Vol.24,No.1 2021年3月Journal of Shazhou Professional Institute of Technology March,2021基于ECharts的数据可视化应用
周洪斌陈立平刘连浩
(沙洲职业工学院,江苏张家港215600)
摘要:数据可视化已成为大数据分析的主要环节之一。ECharts因其具备丰富的可视化类型以及高度的个性化定制功能,被众多机构和企业使用。pyecharts是一款将Python与ECharts结合的强大的数据可视化工具,使数据呈现更加快捷、灵活、高效。借助pyecharts实现了城市各监测点的PM2.5数据的自动爬取以及可视化展示,对开展其他的大数据可视化应用具有借鉴作用。
关键词:ECharts;pyecharts;数据可视化
中图分类号:TP311.13文献标识码:A文章编号:1009-8429(2021)01-0003-07
引言
setoption数据是枯燥、抽象的,而图形、图像却富有表现力和生动性。数据可视化将各种数据用图形化的方式展示,为数据分析提供了更加直观的显示方式[1],是人们理解数据、诠释数据的重要手段和途径。ECharts
是国内百度公司推出的一款开源大数据可视化工具[2],具备千亿级数据可视化渲染能力,支持折线图、饼图、热力图、漏斗图、词云图等丰富的可视化类型,支持二维表、键值对等多种数据格式,并且具有数据的动画展示、三维展示功能,已在国家统计局、国家电网、阿里巴巴、华为等众多机构和企业使用。2018年,全球顶级开源社区Apache基金会宣布“百度开源的ECharts项目全票通过进入Apache孵化器”,ECharts发展进入快车道。
1ECharts使用基础
1.1引用echarts.js
ECharts由JavaScript实现,使用非常方便,从/zh/download.html 下载安装包,解压得到echarts.js文件,与HTML文件放到同一目录下,在HTML文件中通过下面的代码引用echarts.js文件,即可使用ECharts。
<head>
<meta charset="utf-8">
<title>2020年1-3季度农业产值</title>
<script src="echarts.js"></script>
</head>
收稿日期:2021-02-27
基金项目:苏州高职高专院校品牌专业建设项目“移动应用开发”(苏教高职〔2019〕47号)
作者简介:周洪斌(1981-),男,沙洲职业工学院电子信息工程系副教授;
陈立平(1975-),男,沙洲职业工学院信息技术中心高级工程师;
刘连浩(2000-),男,沙洲职业工学院电子信息工程系2018级计算机网络技术专业学生。
1.2ECharts常用组件
ECharts的常用组件包括标题、坐标轴、数据系列、图例等,具体说明如表1所示。
表1ECharts常用组件
组件名称说明常用属性
title图标题(1)text:主标题文本(2)subtext:副标题文本(3)left:与容器左侧的距离
xAxis,yAxis坐标轴(1)name:坐标轴名称
(2)nameLocation:坐标轴名称显示位置(3)nameGap:坐标轴名称与轴线之间的距离
series数据系列(1)name:数据系列名称(2)type:图的类型(3)data:要显示的数据
legend图例(1)left:与容器左侧的距离
(2)data:数据数组,与数据系列对应
1.3显示柱形图
按照表1的说明,使用ECharts组件显示某地区2020年1-3季度农业产值柱形图,代码如下:<body>
<div id="main"></div>
<script type="text/javascript">
var my=echarts.ElementById('main'));
var option={
title:{
text:'2020年1-3季度农业产值',
left:'center'
},
xAxis:{
data:['种植业','林业','牧业','渔业','农林牧渔服务业'],
name:'类别',
nameLocation:'center',
nameGap:35
},
yAxis:{
name:'产值(亿元)',
nameLocation:'center',
nameGap:45
},
-4-
-5-
series:[{
name:'产值',
type:'bar',
data:[75.00,6.49,35.77,30.81,10.64]
}]
};
my.setOption(option);
</script>
</body>
<div>标签用于为ECharts 定义展示用的容器,echarts.ElementById('main'))用于初始化ECharts 实例。页面运行效果如图1
所示。
图1使用ECharts 展示某地区2020年1-3季度农业产值柱形图
2使用Python 调用ECharts
pyecharts 是一款Python 与ECharts 结合的可视化工具,用于大数据可视化。可以通过下面的命令安装pyecharts:
pip install pyecharts
使用pyecharts 实现图1所示的柱形图。
(1)导入pyecharts 绘制柱形图所需的模块
import pyecharts.options as opts
from pyecharts.charts import Bar
(2)提供要显示的数据
name=['种植业','林业','牧业','渔业','农林牧渔服务业']
data=[75.00,6.49,35.77,30.81,10.64]
(3)设置柱形图的X轴以及Y轴数据
chart=Bar()
chart.add_xaxis(xaxis_data=name)
chart.add_yaxis(
series_name="",
y_axis=data,
label_opts=opts.LabelOpts(is_show=True)
)
(4)设置标题以及坐标轴名称
chart.set_global_opts(
title_opts=opts.TitleOpts(title="2020年1-3季度农业产值",pos_left="center"),
yaxis_opts=opts.AxisOpts(name="类别",name_location="center",name_gap=45),
xaxis_opts=opts.AxisOpts(name="产值(亿元)",name_location="center",name_gap=35)
)
(5)展示图形
3pyecharts应用实例
借助Python强大的数据获取能力,结合pyecharts,可以实现数据的自动爬取、可视化展示。
3.1爬取城市PM2.5实时数据
网站www.pm25x/提供全国各大城市PM2.5指数和空气质量指数实时监测数据查询[3],包括每个监测点发布的AQI指数、首要污染物、空气污染状况和变化等信息,数据1小时更新一次。我们可以通过Python爬取某个城市各个监测点的PM2.5数据。
以爬取南京市各个监测点的PM2.5数据为例,打开页面www.pm25x/city/nanjing.htm,可以看到如图2所示的某个时刻南京市各个监测点的PM2.5数据。
分析该页面结构,各个监测点的信息是以表格的形式显示的,部分代码如下:
<table cellspacing=0cellpadding=0>
<tr><th>监测点</th><th width="115">AQI</th><th width="150">质量等级</th><th
width="115">PM2.5浓度(1小时)</th><th width="100">主要污染物</th></tr>
<tr><td>迈皋桥</td><td>49</td><td class='gt1'><span>优</span></td><td>19</td><td><em class="t_pm10"> </em></td></tr>
<tr><td>草场门</td><td>40</td><td class='gt1'><span>优</span></td><td>4</td><td><em class="t_pm10"> </em></td></tr>
<!--省略其他行-->
</table>
-
6-
图2某时刻南京市各个监测点的PM2.5数据
因此,可以用requests包爬取网页内容,然后使用BeautifulSoup对网页进行解析[4],获取表格中的数据。需要注意的是,表头数据不是我们所需要的,提取时要略过表头。
(1)导入包
import requests
from bs4import BeautifulSoup as bs
import pyecharts.options as opts
from pyecharts.charts import Line
(2)定义X轴、Y轴数据
areas=[]
pms=[]
(3)爬取数据
url='www.pm25x/city/nanjing.htm'
(url)
parse=bs(content,"html.parser")
#返回第一个table
table=parse.find("table")
#获取表格所有行并略过表头
-7-

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。