• 轻松高效搭建可视化数据网站


    数据可视化不仅是业务人员查看数据的工具,更是数据化运营的助推器。
    此文主要通过HTML+JS+CSS搭建可视化数据网站,可应用于数据中台或统计展示。
    随着数字化的转型,专业可视化数据平台的出现能够更好传递数据背后价值,并提供强大的数据分析能力,发现产品及数据的关键增长点。

    一、网站模板

    (1)通用模板

    在这里插入图片描述

    (2)医疗数据

    在这里插入图片描述

    (3)交通数据

    在这里插入图片描述

    (4)智慧大厅

    在这里插入图片描述

    (5)数据监控

    在这里插入图片描述

    (6)智慧交通

    在这里插入图片描述

    (7)智慧门店

    在这里插入图片描述

    (8)智慧物流

    在这里插入图片描述

    数据可视化的意义是帮助人更好的分析数据,信息的质量很大程度上依赖于其表达方式。对数字罗列所组成的数据中所包含的意义进行分析,使分析结果可视化。其实数据可视化的本质就是视觉对话。数据可视化将技术与艺术完美结合,借助图形化的手段,清晰有效地传达与沟通信息。一方面,数据赋予可视化以价值;另一方面,可视化增加数据的灵性,两者相辅相成,帮助企业从信息中提取知识、从知识中收获价值。精心设计的图形不仅可以提供信息,还可以通过强大的呈现方式增强信息的影响力,吸引人们的注意力并使其保持兴趣,这是表格或电子表格无法做到的。

    二、引入方式

    (1)Echarts介绍

    文章中出现的柱状、条形、圆饼、折线等统计图大部分是基于Echart数据可视化图表库进行开发,它能够提供直观,生动,可交互,可个性化定制的数据可视化图表。是使用Javascript实现的开源可视化库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器。
    在这里插入图片描述

    (2)创建项目

    1. 下载echart.js并创建一个HTML页面。
    <!DOCTYPE html>
    <html>
    	<head>
    	    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    	    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    	    <title>Document</title>
    	    <script src="echarts.min.js"></script>
    		<meta charset="utf-8">
    		<title></title>
    	</head>
    	<body>
    	</body>
    </html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    1. 去echarts官网事例中选择合适的图表,点击查看详情。

    在这里插入图片描述

    1. 回到HTML中,在页面上创建一个DOM容器,并指定对应的宽度跟高度

    在这里插入图片描述

    <!DOCTYPE html>
    <html>
    	<head>
    	    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    	    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    	    <title>Document</title>
    	    <script src="echarts.min.js"></script>
    		<meta charset="utf-8">
    		<title></title>
    	</head>
    	<body>
    		<div id="main" style="height: 500px; width: 1000px;">
    	
    	    </div>
    	</body>
    </html>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    1. 复制echarts官网的JS代码放到你的JS中,根据ID指向。

    在这里插入图片描述

    <script>
    var chartDom = document.getElementById('main');
    var myChart = echarts.init(chartDom);
    var option;
    option = {
      xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
      },
      yAxis: {
        type: 'value'
      },
      series: [
        {
          data: [150, 230, 224, 218, 135, 147, 260],
          type: 'line'
        }
      ]
    };
    option && myChart.setOption(option);
    </script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    在这里插入图片描述

    三、代码块

    HTML

       <div class="loading">
            <div class="loadbox"> <img src="images/loading.gif"> 页面加载中... </div>
        </div>
        <div class="head">
            <h1>智慧门店大数据可视化平台</h1>
            <div class="weather"><img src="images/weather.png"><span>多云转小雨</span><span>2021-06-06</span></div>
        </div>
        <div class="mainbox">
            <ul class="clearfix">
                <li>
                    <div class="boxall" style="height: 2.7rem">
                        <div class="alltitle">销售数据统计</div>
    
                        <div class="sycm">
                            <ul class="clearfix">
                                <li><h2>1824</h2><span>今日销售额</span></li>
                                <li><h2>1920</h2><span>昨日销售额</span></li>
                                <li><h2>19%</h2><span>环比增长</span></li>
                            </ul>
                            <div style="border-bottom: 1px solid rgba(255,255,255,.1)"></div>
                            <ul class="clearfix">
                                <li><h2>9301</h2><span>今日销售额</span></li>
                                <li><h2>8873</h2><span>昨日销售额</span></li>
                                <li><h2>21%</h2><span>环比增长</span></li>
                            </ul>
    
    
                        </div>
                        <div class="boxfoot"></div>
                    </div>
                    <div class="boxall" style="height: 2.65rem">
                        <div class="alltitle">消费占比</div>
                        <div class="sy" id="echarts1"></div>
                        <div class="sy" id="echarts2"></div>
                        <div class="sy" id="echarts3"></div>
                        <div class="boxfoot"></div>
                    </div>
                    <div class="boxall" style="height: 2.95rem">
                        <div class="alltitle">行业区分比例</div>
                        <div id="echarts4" style="height: 2.2rem; width: 100%;"></div>
                        <div class="boxfoot"></div>
                    </div>
                </li>
                <li>
                    <div class="bar">
                        <div class="barbox">
                            <ul class="clearfix">
                                <li class="pulll_left counter">12581189</li>
                                <li class="pulll_left counter">3912410</li>
                            </ul>
                        </div>
                        <div class="barbox2">
                            <ul class="clearfix">
                                <li class="pulll_left">消费总金额</li>
                                <li class="pulll_left">消费总笔数</li>
                            </ul>
                        </div>
                    </div>
                    <div class="map">
                        <div class="map1"><img src="images/lbx.png"></div>
                        <div class="map2"><img src="images/jt.png"></div>
                        <div class="map3"><img src="images/map.png"></div>
                        <div class="map4" id="map_1"></div>
                    </div>
                </li>
                <li>
                    <div class="boxall" style="height:5.2rem">
                        <div class="alltitle">新增会员信息</div>
                        <div class="tabs">
                            <ul class="clearfix">
                                <li><a class="active" href="#">7</a></li>
                                <li><a href="#">15</a></li>
                                <li><a href="#">30</a></li>
                            </ul>
                        </div>
                        <div class="clearfix">
                            <div class="sy" id="echarts6"></div>
                            <div class="sy" id="echarts7"></div>
                            <div class="sy" id="echarts8"></div>
                        </div>
                        <div class="addnew">
                            <div class="tit02"><span>今日新增会员列表</span></div>
                            <div class="adduser">
                                <ul class="clearfix">
                                    <li class="clearfix"> <span class="pulll_left"><img src="images/head.jpg">1:今日新增会员列表</span> <span class="pulll_right">21-- 西安 </span> </li>
                                    <li class="clearfix"> <span class="pulll_left"><img src="images/head.jpg">2:今日新增会员列表</span> <span class="pulll_right">22-- 成都 </span> </li>
                                    <li class="clearfix"> <span class="pulll_left"><img src="images/head.jpg">3:今日新增会员列表</span> <span class="pulll_right">23-- 广州 </span> </li>
                                    <li class="clearfix"> <span class="pulll_left"><img src="images/head.jpg">4:今日新增会员列表</span> <span class="pulll_right">24-- 北京 </span> </li>
                                </ul>
                            </div>
                        </div>
                        <div class="boxfoot"></div>
                    </div>
                    <div class="boxall" style="height: 3.4rem">
                        <div class="alltitle">实时消费记录</div>
                        <div class="wrap">
                            <ul>
                                <li>
                                    <p>1:凯文童鞋 - 支付宝支付 - 120- XXX门店</p>
                                </li>
                                <li>
                                    <p>2:李云龙 - 支付宝支付 - 120- XXX门店</p>
                                </li>
                                <li>
                                    <p>3:岳云鹏 - 支付宝支付 - 120- XXX门店</p>
                                </li>
                                <li>
                                    <p>4:刘亦菲 - 支付宝支付 - 120- XXX门店</p>
                                </li>
                                <li>
                                    <p>5:周杰伦 - 支付宝支付 - 120- XXX门店</p>
                                </li>
                                <li>
                                    <p>6:刘德华 - 支付宝支付 - 120- XXX门店</p>
                                </li>
                            </ul>
                        </div>
                        <div class="boxfoot"></div>
                    </div>
                </li>
            </ul>
     
        </div>
        <div class="back"></div>
    
    • 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
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124

    JS

        <script type="text/javascript">
            $(document).ready(function () {
                myChart1.resize();
                myChart2.resize();
                myChart3.resize();
                myChart6.resize();
                myChart7.resize();
                myChart8.resize();
            })
            window.addEventListener("resize", function () {
                myChart1.resize();
                myChart2.resize();
                myChart3.resize();
                myChart6.resize();
                myChart7.resize();
                myChart8.resize();
            });
        </script>
        <script type="text/javascript">
            var v0 = 1000;
            var v1 = 353;
            var v2 = 178;
            var v3 = 68;
    
    
    
            var myChart6 = echarts.init(document.getElementById('echarts6'));
            option6 = {
                series: [{
                    type: 'pie',
                    radius: ['70%', '80%'],
                    color: '#0088cc',
                    label: {
                        normal: {
                            position: 'center'
                        }
                    },
                    data: [{
                        value: v1,
                        name: '新增会员',
                        label: {
                            normal: {
                                formatter: v1 + '',
                                textStyle: {
                                    fontSize: 20,
                                    color: '#fff',
                                }
                            }
                        }
                    },
                           {
                               value: v0,
                               name: '老会员',
                               label: {
                                   normal: {
                                       formatter: function (params) {
                                           return '占比' + Math.round(v1 / v0 * 100) + '%'
                                       },
                                       textStyle: {
                                           color: '#aaa',
                                           fontSize: 12
                                       }
                                   }
                               },
                               itemStyle: {
                                   normal: {
                                       color: 'rgba(255,255,255,.2)'
                                   },
                                   emphasis: {
                                       color: '#fff'
                                   }
                               },
                           }]
                }]
    
            };
    
            var myChart7 = echarts.init(document.getElementById('echarts7'));
            option7 = {
                series: [{
                    type: 'pie',
                    radius: ['70%', '80%'],
                    color: '#fccb00',
                    label: {
                        normal: {
                            position: 'center'
                        }
                    },
                    data: [{
                        value: v2,
                        name: '新增领卡会员',
                        label: {
                            normal: {
                                formatter: v2 + '',
                                textStyle: {
                                    fontSize: 20,
                                    color: '#fff',
                                }
                            }
                        }
                    },
                           {
                               value: v0,
                               name: '总领卡会员',
                               label: {
                                   normal: {
                                       formatter: function (params) {
                                           return '占比' + Math.round(v2 / v0 * 100) + '%'
                                       },
                                       textStyle: {
                                           color: '#aaa',
                                           fontSize: 12
                                       }
                                   }
                               },
                               itemStyle: {
                                   normal: {
                                       color: 'rgba(255,255,255,.2)'
                                   },
                                   emphasis: {
                                       color: '#fff'
                                   }
                               },
                           }]
                }]
            };
    
    
            var myChart8 = echarts.init(document.getElementById('echarts8'));
            option8 = {
    
    
                series: [{
    
                    type: 'pie',
                    radius: ['70%', '80%'],
                    color: '#62b62f',
                    label: {
                        normal: {
                            position: 'center'
                        }
                    },
                    data: [{
                        value: v3,
                        name: '女性客户',
                        label: {
                            normal: {
                                formatter: v3 + '',
                                textStyle: {
                                    fontSize: 20,
                                    color: '#fff',
                                }
                            }
                        }
                    }, {
                        value: v0,
                        name: '男性客户',
                        label: {
                            normal: {
                                formatter: function (params) {
                                    return '占比' + Math.round(v2 / v0 * 100) + '%'
                                },
                                textStyle: {
                                    color: '#aaa',
                                    fontSize: 12
                                }
                            }
                        },
                        itemStyle: {
                            normal: {
                                color: 'rgba(255,255,255,.2)'
                            },
                            emphasis: {
                                color: '#fff'
                            }
                        },
                    }]
                }]
            };
            setTimeout(function () {
                myChart6.setOption(option6);
                myChart7.setOption(option7);
                myChart8.setOption(option8);
            }, 500);
    
        </script>
        <script type="text/javascript">
            var myChart1 = echarts.init(document.getElementById('echarts1'));
            var v1 = 298;
            var v2 = 523;
            var v3 = v1 + v2;
            option1 = {
    
          
                series: [{
                    type: 'pie',
                    radius: ['70%', '80%'],
                    color: '#0088cc',
                    label: {
                        normal: {
                            position: 'center'
                        }
                    },
                    data: [{
                        value: v1,
                        name: '平均单客价',
                        label: {
                            normal: {
                                formatter: v3 + '',
                                textStyle: {
                                    fontSize: 20,
                                    color: '#fff',
                                }
                            }
                        }
                    },
                    ]
                }]
            };
    
    
            var myChart3 = echarts.init(document.getElementById('echarts3'));
            var v1 = 298 
            var v2 = 523 
            var v3 = v1 + v2 
            option2 = {
    
           
                series: [{
                    type: 'pie',
                    radius: ['70%', '80%'],
                    color: '#fccb00',
                    label: {
                        normal: {
                            position: 'center'
                        }
                    },
                    data: [{
                        value: v1,
                        name: '男性客户',
                        label: {
                            normal: {
                                formatter: v1 + '',
                                textStyle: {
                                    fontSize: 20,
                                    color: '#fff',
                                }
                            }
                        }
                    }, {
                        value: v2,
                        name: '女性客户',
                        label: {
                            normal: {
                                formatter: function (params) {
                                    return '占比' + Math.round(v1 / v3 * 100) + '%'
                                },
                                textStyle: {
                                    color: '#aaa',
                                    fontSize: 12
                                }
                            }
                        },
                        itemStyle: {
                            normal: {
                                color: 'rgba(255,255,255,.2)'
                            },
                            emphasis: {
                                color: '#fff'
                            }
                        },
                    }]
                }]
            };
    
    
            var myChart2 = echarts.init(document.getElementById('echarts2'));
            option3 = {
    
    
                series: [{
    
                    type: 'pie',
                    radius: ['70%', '80%'],
                    color: '#62b62f',
                    label: {
                        normal: {
                            position: 'center'
                        }
                    },
                    data: [{
                        value: v2,
                        name: '女性客户',
                        label: {
                            normal: {
                                formatter: v2 + '',
                                textStyle: {
                                    fontSize: 20,
                                    color: '#fff',
                                }
                            }
                        }
                    }, {
                        value: v1,
                        name: '男性客户',
                        label: {
                            normal: {
                                formatter: function (params) {
                                    return '占比' + Math.round(v2 / v3 * 100) + '%'
                                },
                                textStyle: {
                                    color: '#aaa',
                                    fontSize: 12
                                }
                            }
                        },
                        itemStyle: {
                            normal: {
                                color: 'rgba(255,255,255,.2)'
                            },
                            emphasis: {
                                color: '#fff'
                            }
                        },
                    }]
                }]
            };
            setTimeout(function () {
                myChart1.setOption(option1);
                myChart2.setOption(option2);
                myChart3.setOption(option3);
            }, 500);
    
        </script>
        <script type="text/javascript">
    
    • 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
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    • 294
    • 295
    • 296
    • 297
    • 298
    • 299
    • 300
    • 301
    • 302
    • 303
    • 304
    • 305
    • 306
    • 307
    • 308
    • 309
    • 310
    • 311
    • 312
    • 313
    • 314
    • 315
    • 316
    • 317
    • 318
    • 319
    • 320
    • 321
    • 322
    • 323
    • 324
    • 325
    • 326
    • 327
    • 328
    • 329
    • 330
    • 331
    • 332
    • 333
    • 334
    • 335
  • 相关阅读:
    Rust 从入门到精通10-所有权
    第3章:数据链路层
    R语言---scale函数,match函数和%in%详解
    Android逆向学习(五)app进行动态调试
    AI不离谱,大语言模型ChatMusician可以理解曲谱生成AI音乐
    棒球元宇宙的未来·棒球9号位
    基于SSM的公选课的选课系统/选课系统的设计与实现
    Java比较两个日期的间隔天数(案例详解)
    Python面向对象编程
    预防山体滑坡,泥石流监测智能预警系统
  • 原文地址:https://blog.csdn.net/weixin_42794881/article/details/127842702