美文网首页
Echarts 3.x仪表盘常用API示例

Echarts 3.x仪表盘常用API示例

作者: 易冷zzz | 来源:发表于2018-07-30 14:07 被阅读434次

    采用Echarts3.x绘制仪表盘,官方只给出了一些基本的示例,设计仪表盘指针,刻度,分割线,显示的数据,仪表盘半径大小等参数均需要查API费时又费力,目前做了一个demo基本覆盖了仪表盘的常用API,方便日后查阅,代码如下:

    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title>ECharts仪表盘练习</title>
            <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
            <script src="lib/echarts3.2.2.min.js"></script>
        </head>
    
        <body>
            <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
            <div id="main" style="width: 600px;height:400px;"></div>
            <script type="text/javascript">
                // 基于准备好的dom,初始化echarts实例
                var myChart = echarts.init(document.getElementById('main'));
    
                // 指定图表的配置项和数据
                option = {
                    backgroundColor: '#1b1b1b',
                    title:{
                        show:true,
                        text:"转速,速度仪表盘",
                        left:'center',
                        bottom: '30',
                        textStyle: {
                            fontSize: 18,
                            fontWeight:'normal',
                            color:"#fff"
                        },
                    },
                    tooltip : {
                        formatter: "{a} {b} : {c}"
                    },
                    toolbox: {
                        show: true,
                        feature: {
                            mark: {
                                show: true
                            },
                            restore: {
                                show: true
                            },
                            saveAsImage: {
                                show: true
                            }
                        }
                    },
                    series: [{
                        name: '速度',
                        type: 'gauge',//仪表盘类型
                        min: 0,//表盘最小值
                        max: 220,//表盘最大值
                        splitNumber: 11,//仪表盘分成11等份
                        radius: '50%',//仪表盘半径
                        axisLine: { // 坐标轴线(即最外层的圆环)
                            //length:55,
                            lineStyle: { //控制线条样式
                                color: [
                                    [0.2, '#00ff00'],//表盘最大值的20%部分刻度显示的颜色
                                    [0.8, '#1e90ff'],//表盘最大值的20%到80%部分刻度显示的颜色
                                    [1, '#ff4500']//表盘最大值的80%到100%部分刻度显示的颜色
                                ],
                                width: 8,//圆环宽度
                                shadowColor: '#fff', //默认透明
                                shadowBlur: 10//阴影模糊大小
                            }
                        },
                        axisLabel: { // 控制坐标轴刻度的数字样式
                            textStyle: { //控制刻度文本样式
                                fontWeight: 'bolder',//刻度加粗
                                color: '#fff',//刻度颜色
                                shadowColor: '#fff', //默认透明
                                shadowBlur: 10
                            }
                        },
                        axisTick: { // 控制仪表盘的刻度线样式
                            length: 15,
                            lineStyle: {
                                color: 'auto',
                                shadowColor: '#fff', //默认透明
                                shadowBlur: 10
                            }
                        },
                        splitLine: { // 控制分隔线样式(即表盘上长的刻度线)
                            length: 25, // 属性length控制线长
                            lineStyle: {
                                width: 3,
                                color: '#fff',
                                shadowColor: '#fff', //默认透明
                                shadowBlur: 10
                            }
                        },
                        pointer: {//控制指针样式
                            shadowColor: '#fff', //默认透明
                            shadowBlur: 15,
                            width:6//控制指针宽度
                        },
                        title: {//仪表盘内标题(即data下value值的单位"km/h")
                            textStyle: {
                                fontWeight: 'bolder',
                                fontSize: 20,
                                fontStyle: 'italic',
                                color: '#fff',
                                shadowColor: '#fff', //默认透明
                                shadowBlur: 10
                            }
                        },
                        detail: {//仪表盘详情,用于显示数据
                            backgroundColor: 'rgba(30,144,255,0.8)',
                            borderWidth: 1,
                            borderColor: '#fff',
                            shadowColor: '#fff', //默认透明
                            shadowBlur: 5,
                            offsetCenter: [0, '50%'], //相对于仪表盘中心偏移
                            textStyle: {
                                fontWeight: 'bolder',
                                color: 'blue',
                                fontSize:24
                            }
                        },
                        data: [{
                            value: 40,
                            name: 'km/h'
                        }]
                    }, 
                    {
                        name: '转速',
                        type: 'gauge',
                        center: ['25%', '55%'], // 默认全局居中
                        radius: '30%',
                        min: 0,
                        max: 7,
                        endAngle: 45,
                        splitNumber: 7,
                        axisLine: {
                            lineStyle: {
                                color: [
                                    [0.29, 'lime'],
                                    [0.86, '#1e90ff'],
                                    [1, '#ff4500']
                                ],
                                width: 2,
                                shadowColor: '#fff',
                                shadowBlur: 10
                            }
                        },
                        axisLabel: {
                            textStyle: {
                                fontWeight: 'bolder',
                                color: '#fff',
                                shadowColor: '#fff',
                                shadowBlur: 10
                            }
                        },
                        axisTick: {
                            length: 12,
                            lineStyle: {
                                color: 'auto',
                                shadowColor: '#fff',
                                shadowBlur: 10
                            }
                        },
                        splitLine: {
                            length: 20,
                            lineStyle: {
                                width: 3,
                                color: '#fff',
                                shadowColor: '#fff',
                                shadowBlur: 10
                            }
                        },
                        pointer: {
                            width: 5,
                            shadowColor: '#fff',
                            shadowBlur: 5
                        },
                        title: {
                            offsetCenter: [0, '-30%'],
                            textStyle: {
                                fontWeight: 'bolder',
                                fontStyle: 'italic',
                                color: '#fff',
                                shadowColor: '#fff',
                                shadowBlur: 10
                            }
                        },
                        detail: {
                            borderColor: '#fff',
                            shadowColor: '#fff',
                            shadowBlur: 5,
                            width: 80,
                            height: 30,
                            offsetCenter: [25, '20%'], 
                            textStyle: { 
                                fontWeight: 'bolder',
                                color: '#ff0000'
                            }
                        },
                        data: [{
                            value: 1.5,
                            name: 'x1000 r/min'
                        }]
                    }, 
                    {
                        name: '油表',
                        type: 'gauge',
                        center: ['75%', '50%'], // 默认全局居中
                        radius: '30%',
                        min: 0,
                        max: 2,
                        startAngle: 135,
                        endAngle: 45,
                        splitNumber: 2,
                        axisLine: {
                            lineStyle: {
                                color: [
                                    [0.2, 'lime'],
                                    [0.8, '#1e90ff'],
                                    [1, '#ff4500']
                                ],
                                width: 2,
                                shadowColor: '#fff', //默认透明
                                shadowBlur: 10
                            }
                        },
                        axisTick: {
                            length: 12,
                            lineStyle: {
                                color: 'auto',
                                shadowColor: '#fff', 
                                shadowBlur: 10
                            }
                        },
                        axisLabel: {
                            textStyle: {
                                fontWeight: 'bolder',
                                color: '#fff',
                                shadowColor: '#fff',
                                shadowBlur: 10
                            },
                            formatter: function(v) {
                                switch(v + '') {
                                    case '0':
                                        return 'E';
                                    case '1':
                                        return 'Gas';
                                    case '2':
                                        return 'F';
                                }
                            }
                        },
                        splitLine: {
                            length: 15, 
                            lineStyle: {
                                width: 3,
                                color: '#fff',
                                shadowColor: '#fff',
                            }
                        },
                        pointer: {
                            width: 2,
                            shadowColor: '#fff',
                            shadowBlur: 5
                        },
                        title: {
                            show: false
                        },
                        detail: {
                            show: false
                        },
                        data: [{
                            value: 0.5,
                            name: 'gas'
                        }]
                    }, 
                    {
                        name: '水表',
                        type: 'gauge',
                        center: ['75%', '50%'], 
                        radius: '30%',
                        min: 0,
                        max: 2,
                        startAngle: 315,
                        endAngle: 225,
                        splitNumber: 2,
                        axisLine: { 
                            lineStyle: { 
                                color: [
                                    [0.2, 'lime'],
                                    [0.8, '#1e90ff'],
                                    [1, '#ff4500']
                                ],
                                width: 2,
                                shadowColor: '#fff',
                                shadowBlur: 10
                            }
                        },
                        axisTick: { 
                            show: false
                        },
                        axisLabel: {
                            textStyle: {
                                fontWeight: 'bolder',
                                color: '#fff',
                                shadowColor: '#fff', 
                                shadowBlur: 10
                            },
                            formatter: function(v) {
                                switch(v + '') {
                                    case '0':
                                        return 'H';
                                    case '1':
                                        return 'Water';
                                    case '2':
                                        return 'C';
                                }
                            }
                        },
                        splitLine: { 
                            length: 15, 
                            lineStyle: {
                                width: 3,
                                color: '#fff',
                                shadowColor: '#fff', 
                                shadowBlur: 10
                            }
                        },
                        pointer: {
                            width: 2,
                            shadowColor: '#fff', 
                            shadowBlur: 5
                        },
                        title: {
                            show: false
                        },
                        detail: {
                            show: false
                        },
                        data: [{
                            value: 0.5,
                            name: 'gas'
                        }]
                    }]
                };
                myChart.setOption(option);
                setInterval(function() {
                    option.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0;
                    option.series[1].data[0].value = (Math.random() * 7).toFixed(2) - 0;
                    option.series[2].data[0].value = (Math.random() * 2).toFixed(2) - 0;
                    option.series[3].data[0].value = (Math.random() * 2).toFixed(2) - 0;
                    myChart.setOption(option);
                }, 2000)
            </script>
        </body>
    
    </html>
    

    相关文章

      网友评论

          本文标题:Echarts 3.x仪表盘常用API示例

          本文链接:https://www.haomeiwen.com/subject/pmuxvftx.html