漏刻有时数据可视化Echarts组件开发(6):象形柱图实现水塔水位的动画

简介: 漏刻有时数据可视化Echarts组件开发(6):象形柱图实现水塔水位的动画

构建容器

<div id="main"></div>



封装函数

// 基于准备好的dom,初始化echarts实例;
    function makeBar(dataList, level, colorList, id) {
        var myChart = echarts.init(document.getElementById(id));
        option = {
            tooltip: {
                trigger: 'none'
            },
            xAxis: {
                data: [''],
                axisTick: {
                    show: false
                },
                axisLine: {
                    show: false
                },
                axisLabel: {
                    show: false
                }
            },
            yAxis: {
                splitLine: {
                    show: false
                },
                axisTick: {
                    show: false
                },
                axisLine: {
                    show: false
                },
                axisLabel: {
                    show: false
                }
            },
            series: [{
                name: '最上层立体圆',
                type: 'pictorialBar',
                animation: false,
                symbolSize: [300, 45],
                symbolOffset: [0, -20],
                z: 12,
                itemStyle: {
                    normal: {
                        color: '#363F5E'
                    }
                },
                data: [{
                    value: 100,
                    symbolPosition: 'end'
                }]
            }, {
                name: '中间立体圆',
                animation: false,
                type: 'pictorialBar',
                symbolSize: [300, 45],
                symbolOffset: [0, -20],
                z: 12,
                itemStyle: {
                    normal: {
                        color: colorList
                    }
                },
                data: [{
                    value: dataList,
                    symbolPosition: 'end'
                }]
            }, {
                name: '最底部立体圆',
                animation: false,
                type: 'pictorialBar',
                symbolSize: [300, 45],
                symbolOffset: [0, 20],
                z: 12,
                itemStyle: {
                    normal: {
                        color: colorList
                    }
                },
                data: [100 - dataList]
            }, {
                //底部立体柱
                stack: '1',
                animation: false,
                type: 'bar',
                itemStyle: {
                    normal: {
                        color: colorList,
                        opacity: .7
                    }
                },
                label: {
                    show: true,
                    position: 'inside',
                    color: "#FFFE00",
                    fontSize: 50,
                    formatter: function () {
                        return level + " 米";
                    }
                },
                silent: true,
                barWidth: 300,
                barGap: '-100%', // Make series be overlap
                data: [dataList]
            }, {
                //上部立体柱
                stack: '1',
                type: 'bar',
                animation: false,
                itemStyle: {
                    normal: {
                        color: '#36405E',
                        opacity: .7
                    }
                },
                silent: true,
                barWidth: 300,
                barGap: '-100%', // Make series be overlap
                data: [100 - dataList]
            }]
        };
        myChart.setOption(option);
        window.addEventListener("resize", function () {
            myChart.resize();
        });
    }


颜色函数

    //获取背景色;
    function getBgColor(num) {
        var min = '1', max = '2';
        if (num > max) {
            return '#DB2F2C'
        }
        if (num >= min && num <= max) {
            return '#438a7a'
        }
        if (num < min) {
            return '#3EC6F0'
        }
    }


调用函数

    //设备高度;
    var towerHight = 3;
    var timerKpi;
    var level = parseFloat(Math.random() * 3 + 0.1).toFixed(2);
    if (level >= 3) {
        level = 2.99;
    }
    var dataList = parseFloat(level * 100 / towerHight).toFixed(2);
    //渲染图表;
    makeBar(dataList, level, getBgColor(level), "main");
    clearInterval(timerKpi);
    setInterval(function () {
        var level = parseFloat(Math.random() * 3 + 0.1).toFixed(2);
        if (level >= 3) {
            level = 2.99;
        }
        var dataList = parseFloat(level * 100 / towerHight).toFixed(2);
        //渲染图表;
        makeBar(dataList, level, getBgColor(level), "main");
    }, 3000);


lockdatav done!

相关文章
|
2月前
|
XML 前端开发 数据格式
echarts柱图前后端代码SpringCloud+Vue3
echarts柱图前后端代码SpringCloud+Vue3
60 1
|
2月前
|
JSON JavaScript 前端开发
vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果
vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果
677 0
|
4月前
|
数据可视化
为什么Echarts数据可视化大屏不好做?
为什么Echarts数据可视化大屏不好做?
|
4月前
|
数据可视化 JavaScript
【Echarts大屏】数据可视化大屏展示页(附原码一键复制)
【Echarts大屏】数据可视化大屏展示页(附原码一键复制)
|
4月前
|
数据可视化 前端开发 JavaScript
【Echarts大屏】数据可视化大屏展示页(附原码一键复制)
【Echarts大屏】数据可视化大屏展示页(附原码一键复制)
|
4月前
|
数据可视化
动漫形象平台 Echarts数据可视化大屏
动漫形象平台 Echarts数据可视化大屏
|
2月前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
81 1
|
2月前
|
JavaScript
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
511 0
|
3月前
|
Web App开发 数据可视化 前端开发
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
本文介绍了ECharts的基本使用和语法格式,包括如何引入ECharts、创建容器、初始化echarts实例对象、配置option参数和一些基础图表的绘制方法。文章还提供了简单图表绘制和使用图例添加的示例代码,以及对ECharts特性和优势的概述。
Echart的使用初体验,Echarts的基本使用及语法格式,简单图表绘制和使用及图例添加【学习笔记】
|
4月前
|
小程序 JavaScript
微信小程序使用echarts图表(ec-canvas)
这篇文章介绍了在微信小程序中使用`ec-canvas`集成echarts图表的方法,包括解决加载时报错的问题、配置图表组件、以及在小程序页面中引入和使用这些图表组件的步骤。
539 1
微信小程序使用echarts图表(ec-canvas)