1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
| <!DOCTYPE html>
| <html>
|
| <head>
| <meta charset="utf-8" />
| <title>ECharts</title>
| <script src="./js/echarts.min.js"></script>
| <script src="./js/echarts.gl.min.js"></script>
| <script src="./js/3d_data.js"></script>
| <style>
| #main {
| /*对子元素开启弹性布局*/
| display: flex;
| /*弹性元素在必要的时候换行*/
| flex-wrap: wrap;
| /*将弹性元素居中*/
| justify-content: center;
|
| width: 600px;
|
| height: 700px;
| }
| </style>
| </head>
|
| <body>
| <div id="main">
| </div>
| <script type="text/javascript">
| var chartDom = document.getElementById('main');
| var myChart = echarts.init(chartDom);
| var option;
|
| function makeDate() {
| let result = [];
| let total = 19; // 每层的数据密集程度
| for (let layer = 1; layer <= 28; ++layer) {
| for (let bs = 0; bs != total; ++bs) {
| result.push([17.5 / total * bs, layer, 0.2 + Math.random() * 1.3])
| }
| }
| return result
| }
| let data = makeDate()
|
|
|
| option = {
| tooltip: {},
| xAxis3D: {
| name: 'X',
| type: 'value'
| },
| yAxis3D: {
| name: 'Y',
| type: 'value'
| },
| zAxis3D: {
| name: 'Z',
| type: 'value',
| min: 0,
| max: 500,
| },
| visualMap: {
| type: 'continuous',
| calculable: true,
| itemHeight: 350,
| left: 'right',
| top: 'center',
| show: true,
| dimension: 2,
| min: 0,
| max: 1.8,
| inRange: {
| color: [
| '#313695',
| '#4575b4',
| '#74add1',
| '#abd9e9',
| '#e0f3f8',
| '#ffffbf',
| '#fee090',
| '#fdae61',
| '#f46d43',
| '#d73027',
| '#a50026'
| ],
| }
| },
| grid3D: {
| viewControl: {
| distance: 300
| },
| },
| series: [
| {
| type: 'surface',
| wireframe: {
| show: true,
| },
| data: data
| }
| ]
| };
|
| option && myChart.setOption(option);
| </script>
| </body>
|
| </html>
|
|