cshenfu
2023-03-28 60edbee179c2a5af004f85799544346c9bdabfd8
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>