如何制作数据可视化网页

前言

之前发表过一篇关于借助可视化平台完成数据可视化的博客——关于新型冠状病毒肺炎疫情追踪的可视化数据的采集、处理,利用可视化平台实现数据可视化确实十分简单,但是让这个完成好的可视化作品不能实现远程访问,就很难受。(之前的可视化平台其实可以实现远程访问,但是还需要申请注册,未注册的一次性仅支持2个ip的访问)
如何利用网页来制作一个属于我们自己的可视化作品呢?
客观,别急,请听我慢慢道来

可视化神器:echarts

请允许让我介绍介绍它:

当我知道echarts是百度开发出来,惊讶之余,也改变了我对百度的一些看法…

ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。
ECharts 遵循 Apache-2.0 开源协议,免费商用。
ECharts 兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等)及兼容多种设备,可随时随地任性展示。
以上载自菜鸟教程

制作这样的可视化图表,需要具备的能力

  1. 一点点的HTML
  2. 一点点的CSS
  3. 相对较多的的JavaScript

进入正题

还是老规矩,这里我还是以基于echarts实现的地图组件为例。

不过在此之前,你仍需要准备一些东西

  1. echarts.min.js(需要用到的echarts库)
  2. china.js(echarts的中国地图需要用到)
  3. jquery.js(JavaScript函数库)

关于这三个文件以及下文中组件需要的数据,我已上传至百度云盘
点我 密码:ujp6

下面给出的是官方下载地址:

echarts.min.js与china.js两个文件,小伙伴们也可以自行到官方github下载:点我
jquery.js官方下载地址:点我

我们开始吧

首先我们需要写一个前端的简单页面

这个难度不大,稍微了解一些html就明白了,所以我直接放出代码简要说明一下就好了。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			*{
    
    
				margin:0;
			}
			body{
    
    
				width: 100%;
				height: 100%;
			}
			#map{
    
    
				position: absolute;
				width: 100%;
				height: 100%;
				top: 0;
			}
		</style>
		<script type="text/javascript" src="js/jquery-3.4.1.js" ></script>
		<script type="text/javascript" src="js/echarts.min.js" ></script>
		<script type="text/javascript" src="js/china.js" ></script>
		
	</head>
	<body>
		<div id="map">地图</div>
		<script type="text/javascript" src="js/map.js" ></script>
	</body>
</html>

我们主要说明一下body标签中的内容,第一个div作用是给我们需要创建的echarts组件提供一个承载容器,定义其id属性目的是为了让echarts组件与这个div标签绑定,通俗来说就是用来告诉echarts组件它要在哪个html标签中显示。
而map.js就是我们接下来的主要工作——实现这个地图组件
为了方便理解,我已对相关属性进行标注
在这里插入图片描述

地图组件的实现

首先在js文件夹下创建一个map.js文件。
初始化一个echarts组件对象,与id名为map的标签绑定,存放在ec_map变量中:

var ec_map = echarts.init(document.getElementById("map"));

定义一个地图组件的option:
属性的意义已在代码注释中给出,在echarts官网中有详细说明:echarts官方文档

var ec_option={
    
    
	//标题属性
	title:{
    
    
		text:"map",//设置标题文本
	},
	tooltip:{
    
    //提示框
		tirgger:"item",//提示框的触发类型
		formatter:"省份名 : {b} <br /> 体温异常 : {c} 人",//字符串模板
	},
	visualMap:{
    
    //导航图标
		x:"left",//定位visualMap组件显示的位置
		y:"bottom",//定位visualMap组件显示的位置
		splitList:[//划分不同范围数据块的显示
		{
    
    start:0,end:49},
		{
    
    start:50,end:99},
		{
    
    start:100,end:149},
		{
    
    start:150,end:199},
		{
    
    start:200}
		],
	},
	series:[{
    
    
		type:"map",//告诉echarts你设置的组件类型
		mapType:"china",//告诉echarts你设置的地图组件是什么地图,这就需要用到china.js了
		data:null,//需要显示的数据
		label:{
    
    
			normal:{
    
    
				show:true,//显示省份名称
				fontSize:18,//调整省份标签的大小
			},
		},
	}]
};

你以为这样就完了吗,请你回想一下,我们制作这样一个组件的目的是什么,对呀,将数据可视化呀!但是,你是否注意到,这一系列过程中,我们并没有利用这些数据,所以,接下来,我们需要利用ajax请求调用之前area.json文件中的数据

$.ajax({
    
    
	type:"get",
	url:"js/area.json",
	async:false,
	success:function(data){
    
    
		ec_option.series[0].data=data.data;
	}
});

完事了吗?并没有!仔细想想之前的都做了什么:绑定指定组件、设置一个组件属性、调用数据文件,还差了什么?将刚刚的组件属性设置到指定组件呀!(敲黑板!)

ec_map.setOption(ec_option);

附上完整map.js代码

var ec_map = echarts.init(document.getElementById("map"));
var ec_option={
    
    
	title:{
    
    
		text:"map",
	},
	tooltip:{
    
    
		tirgger:"item",
		formatter:"省份名 : {b} <br /> 体温异常 : {c} 人",
	},
	visualMap:{
    
    
		x:"left",
		y:"bottom",
		splitList:[
		{
    
    start:0,end:49},
		{
    
    start:50,end:99},
		{
    
    start:100,end:149},
		{
    
    start:150,end:199},
		{
    
    start:200}
		],
	},
	series:[{
    
    
		type:"map",
		mapType:"china",
		data:null,
		label:{
    
    
			normal:{
    
    
				show:true,//显示省份名称
				fontSize:18,
			},
		},
	}]
};
$.ajax({
    
    
	type:"get",
	url:"js/area.json",
	async:false,
	success:function(data){
    
    
		ec_option.series[0].data=data.data;
	}
});
ec_map.setOption(ec_option);

附上一些你可能会遇到的问题

Q:代码是正确的,打开本地的html文件,地图组件有显示,但地图却是灰色的
——
A:由于一些浏览器的安全限制机制原因,禁止跨域,你可以将这些代码部署到自己的服务器上然后远程访问,或者搭建一个本地的服务器即可实现访问,如果你不知道该怎么做,那么也可以下载一个HBuilder,它是一款开发web的软件,使用它运行你的网页文件会自动搭建好本地服务器

Q:打开本地的html文件,只显示地图俩字,没有出现地图组件
——
A:这个应该是你的map.js的代码敲错了,请仔细检查一些代码错误,或者检查是否遗漏标点符号

结语

以上就是关于使用echarts制作可视化网页的教程内容,篇幅有限,本文只是以制作地图组件为引例,如需其他组件可直接参考echarts的官方文档,相信你一定会收获满满的。

猜你喜欢

转载自blog.csdn.net/WildSky_/article/details/105011861
今日推荐