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

【数据可视化(ECharts篇)】30.使用外部的数据转换器

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

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





ECharts除了上述内置的数据转换器外,也可以使用外部的数据转换器。外部数据转换器能提供或定制更丰富的功能。

例如,使用第三方库ecStat提供的数据转换器可以在数据转换操作中实现直方图、聚类、回归、统计等操作。

01
配置所需的文件

因为使用到了第三方库,因此首先需要配置下所需文件。

首先前往官方GitHub页面下载所需的ecStat.js脚本
1https://github.com/ecomfe/echarts-stat/tree/master/dist

引入ecStat.js脚本文件。

1    <!-- 引入下载的 ecStat.js 文件 -->
2    <script type="text/javascript" src="js/ecStat.js"></script>
02
ecStat的使用

使用ecStat前需要先注册外部数据转换器,然后在transform中引用注册的数据转换器,下述代码以生成数据的指数回归线为例

 1// 注册外部数据转换器
2echarts.registerTransform(ecStat.transform.regression);
3
4option = {
5  dataset: [
6    {
7      source: rawData
8    },
9    {
10      transform: {
11        // 引用注册的数据转换器。
12        // 注意,每个外部的数据转换器,都有名空间(如 'ecStat:xxx''ecStat' 是名空间)。
13        // 而内置数据转换器(如 'filter''sort')没有名空间。
14        type'ecStat:regression',
15        config: {
16          // 这里是此外部数据转换器所需的参数。
17          method: 'exponential'
18        }
19      }
20    }
21  ],
22  xAxis: {},
23  yAxis: {},
24  series: [
25    {},
26    {}
27  ]
28};
使用ecStat可以实现以下数据转换操作:
  • 聚集 (Aggregate)
  • 直方图 (Histogram)
  • 简单聚类 (Clustering)
  • 线性回归线 (Linear Regression)
  • 指数回归线 (Exponential Regression)
  • 对数回归线 (Logarithmic Regression)
  • 多项式回归线 (Polynomial Regression)

03
示例

本次以生成数据的直方图为例:

代码如下所示:

  1<!DOCTYPE html>
2<html>
3
4<head>
5    <meta charset="utf-8">
6    <!-- 引入下载的 echarts.js 文件 -->
7    <script type="text/javascript" src="js/echarts.js"></script>
8    <!-- 引入下载的 ecStat.js 文件 -->
9    <script type="text/javascript" src="js/ecStat.js"></script>
10    <title>ECharts图表</title>
11</head>
12
13<body>
14    <!-- 为 ECharts 准备一个定义了宽高的 DOM -->
15    <div id="container" style="width:1200px;height:900px;"></div>
16    <script type="text/javascript">
17    // 基于准备好的dom,初始化echarts实例
18    var myChart = echarts.init(document.getElementById('container'));
19
20    // 注册外部数据转换器
21    echarts.registerTransform(ecStat.transform.histogram);
22
23    // 设置图表的参数
24    var option = {
25        title: {},
26
27        tooltip: {},
28
29        legend: { showfalse },
30
31
32        // 在数据集中设置数据
33        dataset: [{
34            // 设置数据
35            source: [
36                [8.3143],
37                [8.6214],
38                [8.8251],
39                [10.526],
40                [10.786],
41                [10.893],
42                [11.5176],
43                [11.539],
44                [11.6221],
45                [11.6188],
46                [11.757],
47                [11.491],
48                [11.4191],
49                [11.78],
50                [12.5196],
51                [12.9177],
52                [12.9153],
53                [13.3201],
54                [13.7199],
55                [13.847],
56                [14.581],
57                [14.798],
58                [14.5121],
59                [16.537],
60                [16.312],
61                [17.3105],
62                [17.5168],
63                [18.984],
64                [18.5197],
65                [18.0155],
66                [20.6125]
67            ]
68        }, {
69            // 引用注册的数据转换器。
70            // 注意,每个外部的数据转换器,都有名空间(如 'ecStat:xxx','ecStat' 是名空间)。
71            // 而内置数据转换器(如 'filter', 'sort')没有名空间。
72            transform: {
73                type'ecStat:histogram',
74                printtrue,
75                // 这里是此外部数据转换器所需的参数
76                config: { dimensions: [0] }
77            }
78        }, {
79            transform: {
80                type'ecStat:histogram',
81                printtrue,
82                // 这里是此外部数据转换器所需的参数
83                config: { dimensions: [1] }
84            }
85        }],
86
87        // 设置三个网格
88        grid: [{
89                top'50%',
90                right'50%'
91            },
92            {
93                bottom'52%',
94                right'50%'
95            },
96            {
97                top'50%',
98                left'52%'
99            }
100        ],
101
102        // x轴
103        xAxis: [{
104                scaletrue,
105                gridIndex0
106            },
107            {
108                type'category',
109                scaletrue,
110                axisTick: { showfalse },
111                axisLabel: { showfalse },
112                axisLine: { showfalse },
113                gridIndex1
114            },
115            {
116                scaletrue,
117                gridIndex2
118            }
119        ],
120
121        // y轴
122        yAxis: [{
123                gridIndex0
124            },
125            {
126                gridIndex1
127            },
128            {
129                type'category',
130                axisTick: { showfalse },
131                axisLabel: { showfalse },
132                axisLine: { showfalse },
133                gridIndex2
134            }
135        ],
136
137        // 在数据系列中设置数据
138        series: [{
139                name'origianl scatter',
140                type'scatter',
141                xAxisIndex0,
142                yAxisIndex0,
143                encode: { tooltip: [01] },
144                datasetIndex0
145            },
146            {
147                name'histogram',
148                type'bar',
149                xAxisIndex1,
150                yAxisIndex1,
151                barWidth'99.3%',
152                label: {
153                    showtrue,
154                    position'top'
155                },
156                encode: { x0y1},
157                datasetIndex1
158            },
159            {
160                name'histogram',
161                type'bar',
162                xAxisIndex2,
163                yAxisIndex2,
164                barWidth'99.3%',
165                label: {
166                    showtrue,
167                    position'right'
168                },
169                encode: { x1y0},
170                datasetIndex2
171            }
172        ]
173    };
174
175
176    // 使用指定的配置项和数据显示图表
177    myChart.setOption(option);
178    
</script>
179</body>
180
181</html>

可视化结果如下图所示:


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

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


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

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments