HighChars 学习手册

前几天需要制作一些图表,于是想到去年用过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 参数配置

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,956评论 19 139
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,377评论 2 89
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 23,039评论 1 92
  • “我那辆爱玛电动车现在基本没骑,我弟弟捡去用了。 身边玩的那些人,都是开着车的。我能走路的走路,走不了的打摩托车或...
    夏奈l阅读 415评论 0 0
  • 我们知道一个大型的网站,会有非常多的关键词都会有不错的排名 比如天涯论坛、互动百科、京东商城等 那么我们怎么挖掘一...
    李亚涛爱分享阅读 297评论 0 0

友情链接更多精彩内容