首页编程开发ECharts【数据可视化(EChart...

【数据可视化(ECharts篇)】27.数据的异步加载

本系列文章配套代码获取有以下两种途径:

  • 通过百度网盘获取:
链接:https://pan.baidu.com/s/1W26KrZK7RjwgxvulccTA9w?pwd=mnsj 提取码:mnsj
  • 前往GitHub获取
https://github.com/returu/Data_Visualization





之前文章中绘制图表所需的数据都是在初始化后 setOption 中直接填入的,但是在很多情况下,数据并不是在option初始化时填入的,而是在初始化option模板设置好后,在需要数据的时候异步加载进去的。
ECharts中实现异步数据的更新非常简单,在图表初始化后不管任何时候只要通过 jQuery 等工具异步获取数据后通过 setOption 填入数据和配置项就可以。
01
配置所需文件

  • 引入用于加载数据的脚本文件:
可以前往以下所示的官方GitHub页面下载所需的jquery.min.js脚本
1https://github.com/apache/echarts/blob/master/test/lib/jquery.min.js
  • 创建一个虚拟服务器:
另外,还需要使用Flask创建一个虚拟服务器用来实现异步加载数据。
只需创建一个名为run.pypython文件即可,具体代码如下所示:
1from flask import Flask,render_template
2app = Flask(__name__,static_folder = '',template_folder = '')
3@app.route('/')
4def hello_world():
5    return render_template('index.html'# index.html:html文件名,需要保持一致
6if  __name__  ==  '__main__':
7    from werkzeug.serving import run_simple
8    run_simple('127.0.0.1'8080, app)

HTML文件设置完成后,通过命令行工具执行该文件,打开链接即可查看可视化效果。

但是需要注意的是,只要HTML文件有所改变,需要重新运行该文件,可视化效果才会更新。

02
数据的异步加载

本地使用的json文件内容如下:

 1[{
2    "year""2000年",
3    "categories": ["品类1""品类2"" 品类3""品类4""品类5"],
4    "value": [535251545]
5},
6{
7    "year""20010年",
8    "categories": ["品类1""品类2"" 品类3""品类4""品类5"],
9    "value": [1045352060]
10}]

通过以下代码即可实现数据的异步加载:

1$.getJSON('data.json'function (data{
2        console.log(data) // 在浏览器控制台查看加载的数据
3})

上述代码实现的功能为:通过 jQuery 读取json文件,将其作为data变量名传递给function函数,执行该函数下的方法。本次函数下的方法console.log(data)只是将读取的数据data在控制台打印出来。

此时,通过cmd运行run.py文件,打开链接,在打开浏览器的console控制台,可以看到读取的文件已经被打印出来。

至此,完成了数据的异步加载,接下来就可以使用读取的数据绘制柱状图了。

我们已经知道读取的数据会传递给function函数,以执行该函数下的方法,因此我们之前绘制图表设置的初始化option模板其实就是函数下的方法。

 1    $.getJSON('data.json'function (data{
2        console.log(data)
3
4    // 设置图表的参数
5    var option = {
6    ......
7    };
8
9
10    // 使用指定的配置项和数据显示图表
11    myChart.setOption(option);
12    })

因此只需要在某些特定的项处读取相应的数据即可。

代码如下所示:

 1    $.getJSON('data.json', function (data) {
2        console.log(data)
3
4    // 设置图表的参数
5    var option = {
6        title: {
7            text: "品类销量"
8        },
9
10        // 图例
11        legend: {
12            data: [data[0].year, data[1].year] // 获取第一、二项的year的值
13        },
14
15        // x轴
16        xAxis: {
17            type: "category",
18            datadata[0].categories, // 获取categories的值
19        },
20
21        // y轴
22        yAxis: {
23            type: "value",
24        },
25
26
27        // 数据系列
28        series: [{
29            name: data[0].year, // 获取第一项的year的值
30            type: "bar",
31            showBackground: true,
32            label: {
33                show: true,
34                position: "inside",
35            },
36            datadata[0].value, // 获取第一项的value的值
37        }, {
38            name: data[1].year, // 获取第二项的year的值
39            type: "bar",
40            showBackground: true,
41            label: {
42                show: true,
43                position: "inside",
44            },
45            datadata[1].value, // 获取第二项的value的值
46        }]
47    };
48
49
50    // 使用指定的配置项和数据显示图表
51    myChart.setOption(option);
52    })

可视化结果如下图所示:


更多参数和配置可以查看官方文档:

1https://echarts.apache.org/zh/option.html


本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments