highchart 图标 时钟的使用

Posted hero

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了highchart 图标 时钟的使用相关的知识,希望对你有一定的参考价值。

$(function () {
    $(\'#container\').highcharts({
        chart: {
            type: \'line\'
        },
        title: {
            text: \'月平均气温\'
        },
        subtitle: {
            text: \'数据来源: WorldClimate.com\'
        },
        xAxis: {
            categories: [\'一月\', \'二月\', \'三月\', \'四月\', \'五月\', \'六月\', \'七月\', \'八月\', \'九月\', \'十月\', \'十一月\', \'十二月\']
        },
        yAxis: {
            title: {
                text: \'气温 (°C)\'
            }
        },
        plotOptions: {
            line: {
                dataLabels: {
                    enabled: true          // 开启数据标签
                },
                enableMouseTracking: false // 关闭鼠标跟踪,对应的提示框、点击事件会失效
            }
        },
        series: [{
            name: \'东京\',
            data: [7.0, 6.9, 9.5, 14.5, 18.4, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
        }, {
            name: \'伦敦\',
            data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
        }]
    });
});
<div id="container" style="min-width:400px;height:400px"></div>
//外部引入
<link rel="icon" href="https://static.jianshukeji.com/hcode/images/favicon.ico">
    <script type="text/javascript" src="https://img.hcharts.cn/jquery/jquery-1.8.3.min.js"></script>
    <script type="text/javascript" src="https://img.hcharts.cn/highcharts/highcharts.js"></script>
    <script type="text/javascript" src="https://img.hcharts.cn/highcharts/highcharts-more.js"></script>
    <script type="text/javascript" src="https://img.hcharts.cn/highcharts-plugins/highcharts-zh_CN.js"></script>

//这里是我自定义三十天日期的数组  还有 处理对应格式数据的方法
 var myDate = new Date(); //获取今天日期
           myDate.setDate(myDate.getDate() - 30);
           var dateTemp;
           var flag = 1;
           for (var i = 0; i < 30; i++) {
                dateTemp = (myDate.getMonth()+1)+"月"+myDate.getDate()+\'日\';
                dayArray.push(dateTemp);
                myDate.setDate(myDate.getDate() + flag);
            }
                    for (var i = 0; i < 30; i++) {
                 dateTemp = (myDate.getMonth()+1)+"月"+myDate.getDate()+\'日\';
                 sevenArray.push(dateTemp);
                 myDate.setDate(myDate.getDate() + flag);
             }
                    for (var i = 0; i < 24; i++) {
                 dateTemp = 1+"时";
                 timeArray.push(dateTemp);
                 myDate.setDate(myDate.getDate() + flag);
             }
 var day = new Date(item.receivetime).getMonth()+1+"月"+new Date(item.receivetime).getDate()+\'日\';
                         // console.log(item.totalsteps.split(\'|\'));
                        //  console.log(day);
                         var steps = item.totalsteps.split(\'|\');
                            data.data.forEach(function(item){

                                if(obj[day]){
                                     obj[day]+=Number(steps[steps.length-1])
                                    //  stepss.push(steps)
                                }else{
                                        obj[day]=Number(steps[steps.length-1])
                                }
                        })
                        // console.log(dayArray) ;
                });
                // console.log(obj)
                dayArray.forEach(function(item){

                    if(obj[item]){
                        // console.log(obj[item]);
                        totalsteps.push(obj[item]);

                    }else{
                        totalsteps.push(0); //每天步数
                    }
                });

感觉最烦的就是处理数据了,给一打数据。 每个公司的套路不同,我也没法完全展现   下面是时钟的

<div id="container" style="width: 400px; height: 400px; margin: 0 auto"></div>
<script type="text/javascript">
            $(function () {
            /**
             * Get the current time
             */
            function getNow() {
                var now = new Date();
                return {
                    hours: now.getHours() + now.getMinutes() / 60,
                    minutes: now.getMinutes() * 12 / 60 + now.getSeconds() * 12 / 3600,
                    seconds: now.getSeconds() * 12 / 60
                };
            }
            /**
             * Pad numbers
             */
            function pad(number, length) {
                // Create an array of the remaining length + 1 and join it with 0\'s
                return new Array((length || 2) + 1 - String(number).length).join(0) + number;
            }
            var now = getNow();
            // Create the chart
            $(\'#container\').highcharts({
                chart: {
                    type: \'gauge\',
                    plotBackgroundColor: null,
                    plotBackgroundImage: null,
                    plotBorderWidth: 0,
                    plotShadow: false,
                    height: 400
                },
                credits: {
                    enabled: false
                },
                title: {
                    text: \'时钟\'
                },
                pane: {
                    background: [{
                        // default background
                    }, {
                        // reflex for supported browsers
                        backgroundColor: Highcharts.svg ? {
                            radialGradient: {
                                cx: 0.5,
                                cy: -0.4,
                                r: 1.9
                            },
                            stops: [
                                [0.5, \'rgba(255, 255, 255, 0.2)\'],
                                [0.5, \'rgba(200, 200, 200, 0.2)\']
                            ]
                        } : null
                    }]
                },
                yAxis: {
                    labels: {
                        distance: -20
                    },
                    min: 0,
                    max: 12,
                    lineWidth: 0,
                    showFirstLabel: false,
                    minorTickInterval: \'auto\',
                    minorTickWidth: 1,
                    minorTickLength: 5,
                    minorTickPosition: \'inside\',
                    minorGridLineWidth: 0,
                    minorTickColor: \'#666\',
                    tickInterval: 1,
                    tickWidth: 2,
                    tickPosition: \'inside\',
                    tickLength: 10,
                    tickColor: \'#666\',
                    title: {
                        text: \'君子一诺lv<br/>Highcharts\',
                        style: {
                            color: \'#BBB\',
                            fontWeight: \'normal\',
                            fontSize: \'8px\',
                            lineHeight: \'10px\'
                        },
                        y: 10
                    }
                },
                tooltip: {
                    formatter: function () {
                        return this.series.chart.tooltipText;
                    }
                },
                series: [{
                    data: [{
                        id: \'hour\',
                        y: now.hours,
                        dial: {
                            radius: \'60%\',
                            baseWidth: 4,
                            baseLength: \'95%\',
                            rearLength: 0
                        }
                    }, {
                        id: \'minute\',
                        y: now.minutes,
                        dial: {
                            baseLength: \'95%\',
                            rearLength: 0
                        }
                    }, {
                        id: \'second\',
                        y: now.seconds,
                        dial: {
                            radius: \'100%\',
                            baseWidth: 1,
                            rearLength: \'20%\'
                        }
                    }],
                    animation: false,
                    dataLabels: {
                        enabled: false
                    }
                }]
            },
                                       // Move
                                       function (chart) {
                setInterval(function () {
                    now = getNow();
                    var hour = chart.get(\'hour\'),
                        minute = chart.get(\'minute\'),
                        second = chart.get(\'second\'),
                        // run animation unless we\'re wrapping around from 59 to 0
                        animation = now.seconds === 0 ?
                        false :
                    {
                        easing: \'easeOutElastic\'
                    };
                    // Cache the tooltip text
                    chart.tooltipText =
                        pad(Math.floor(now.hours), 2) + \':\' +
                        pad(Math.floor(now.minutes * 5), 2) + \':\' +
                        pad(now.seconds * 5, 2);
                    hour.update(now.hours, true, animation);
                    minute.update(now.minutes, true, animation);
                    second.update(now.seconds, true, animation);
                }, 1000);
            });
        });
        // Extend jQuery with some easing (copied from jQuery UI)
        $.extend($.easing, {
            easeOutElastic: function (x, t, b, c, d) {
                var s=1.70158;var p=0;var a=c;
                if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
                if (a < Math.abs(c)) { a=c; var s=p/4; }
                else var s = p/(2*Math.PI) * Math.asin (c/a);
                return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
            }
        });

</script>

 

以上是关于highchart 图标 时钟的使用的主要内容,如果未能解决你的问题,请参考以下文章

highcharts基本配置和使用highcharts做手机端图标

自定义 highcharts 图例之 symbol

Android Highcharts DialogFragment

EChart和hightcharts介绍和使用(生成图标)

highCharts 转svg 导出excel

HighCharts学习笔记