美文网首页
HighChars 学习手册

HighChars 学习手册

作者: Klart | 来源:发表于2018-07-09 11:12 被阅读10次
    前几天需要制作一些图表,于是想到去年用过HighChars,就想着反正好久没写过图表了,于是就把活给揽过来了(被硬塞进来的);顺带复习一下HighChars吧!当然,都是官方文档上看到的
    • HighChars图表由九个部分组成


      Highcharts基本组成部分
    1. 标题(Title)
    2. 坐标轴(Axis)
    3. 数据列(Series)
    4. 数据提示框(Tooltip)
    5. 图例(Legend)
    6. 版权标签(Credits)
    7. 导出功能(Exporting)
    8. 标示线(PlotLines)
    9. 标示区(PlotBands)
    
    • 图表类型通过 chart.type 来指定图表类型,表示如果默认图表类型,即如果 series 中没有指定 type, 那么图表的类型就由该属性来确定。
    • HighChars使用最主要的是图表配置选项:
    var options = {
        chart: {
            type: 'bar'
        },
        title: {
            text: 'Fruit Consumption'
        },
        xAxis: {
            categories: ['Apples', 'Bananas', 'Oranges']
        },
        yAxis: {
            title: {
                text: 'Fruit eaten'
            }
        },
        series: [{
            name: 'Jane',
            data: [1, 0, 4]
        }, {
            name: 'John',
            data: [5, 7, 3]
        }]
    };
    

    数据列共有三个级别的配置,权重从低到高依次如下:

    • 配置在 plotOptions.series 中

    对应的 API 为:plotOptions.series 中,针对所有类型图表有效,一般是通用配置。

    • 配置在 plotOptions.{图表类型} 中

    对应的 API 为 : plotOptions 下的指定图表类型,针对当前类型图表有效,一般是某一种图表的通用配置。

    • 配置在 series 中

    对应的 API 为:series, 针对当前数据列有效

    以上三中方式自上往下权重依次递增的,也就是配置在 series 中的属性会覆盖 plotOptions 中的配置。 Highcharts API 的这种层级关系体现了 API 设计的继承性和灵活性。

    series:数据列;格式是json对象;
    配置好图表配置,一个简单的报表就出来了;
    显示报表后需要点击某一个栏会出现下一个报表或者运行一个函数;

    下一个报表的话HighChars提供了一个钻取功能:drilldown ;

    $(function () {
            // Create the chart
            $('#container').highcharts({
                    chart: {
                            type: 'column',
                            events: {
                                    drillup: function(e) {
                                            // 上钻回调事件
                                            console.log(e.seriesOptions);
                                    },
                                    drilldown: function (e) {
                                            if (!e.seriesOptions) {
                                                    var chart = this,
                                                            drilldowns = {
                                                                    'Animals': {
                                                                            name: 'Animals',
                                                                            data: [
                                                                                    ['Cows', 2],
                                                                                    ['Sheep', 3]
                                                                            ]
                                                                    }
                                                            },
                                                            series = drilldowns[e.point.name];
                                                    // Show the loading label
                                                    chart.showLoading('Simulating Ajax ...');
                                                    setTimeout(function () {
                                                            chart.hideLoading();
                                                            chart.addSeriesAsDrilldown(e.point, series);
                                                    }, 1000);
                                            }
                                    }
                            }
                    },
                    series: [{
                            name: 'Things',
                            colorByPoint: true,
                            data: [{
                                    name: 'Animals',
                                    y: 5,
                                    drilldown: true
                            }]
                    }]
            });
    });
    
    

    运行函数的话:events ;当数据列被点击时触发的事件回调函数,其中事件对象作为函数的参数传递

    Highcharts.chart('container', {
            xAxis: {
                    categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
            },
            plotOptions: {
                    series: {
                            cursor: 'pointer',
                            events: {
                                    click: function (event) {
                                            alert(
                                                    this.name + ' 被点击了\n' +
                                                    '最近点:' + event.point.category + '\n' +  
                                                    'Alt 键: ' + event.altKey + '\n' +
                                                    'Ctrl 键: ' + event.ctrlKey + '\n' +
                                                    'Meta 键(win 键): ' + event.metaKey + '\n' +
                                                    'Shift 键:' + event.shiftKey
                                            );
                                    }
                            }
                    }
            },
            series: [{
                    data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
            }]
    });
    
    

    highchars 参数配置

    相关文章

      网友评论

          本文标题:HighChars 学习手册

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