• Highcharts使用


    Highcharts图表控件是使用比较广泛的图表控件。本文将介绍如何配置Highcharts和动态生成Highcharts图表。可参考Highcharts官网:http://www.highcharts.com
    1. 前言
    Highcharts主要包含两个部分:Highcharts和Highstock。
    Highcharts可以为网站和web应用程序提供直观、互动式的图表,目前支持:线、样条、面积、areaspline、柱形图、条形图、饼图和散点图类型。
    Highstock可以建立股票或一般的时间轴图表,它包括先进的导航选项、预设的日期范围、日期选择器、滚动和平移等。
    2. 安装
    1.Highcharts沿用jquery,MooToo,Prototype等Javascript框架来处理基本的Javascript任务。所以,使用Highcharts之前,需要引用如下脚本文件。如果使用jQuery作为基本框架,那么需要在头部同时引用jQuery和Highcharts两个文件。
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
    <script src="/js/highcharts.js" type="text/javascript"></script>
    
    Highcharts和Highstock内置了jQuery适配器,所以可以直接引用;但没有内置其他JavaScript框架的适配器,因此使用MooTools等其他JS框架时,需要单独引用适配器脚本文件。
    <script src="https://ajax.googleapis.com/ajax/libs/mootools/1.3.0/mootools-yui-compressed.js" type="text/javascript"></script>
    <script src="/js/adapters/mootools-adapter.js" type="text/javascript"></script>
    <script src="/js/highcharts.js" type="text/javascript"></script>
    
    3.国民体质统计结果展示
    调用Highcharts代码对统计结果进行展示,js代码如下:
       //显示统计图
            function ShowGraph(data) {
                var xname = [];
                var seriesData = [];
                var series5 = {};
                series5["name"] = "5";
                var tempdata = [];
                var project = $('#Project').find("option:selected").text();
                var index = 0;
                for (var i in data) {
                    if (project == "全部") {
                        tempdata.push(parseFloat(data[i]["C5Per"]));
                        xname[index++] = data[i]["Project"];
                    } else {
                        if (project == data[i]["Project"]) {
                            tempdata.push(parseFloat(data[i]["C5Per"]));
                            xname[index++] = data[i]["Project"];
                        }
                    }
                }
                series5["data"] = tempdata;
                seriesData.push(series5);
                var series4 = {};
                series4["name"] = "4";
                tempdata = [];
                for (var i in data) {
                    if (project == "全部") {
                        tempdata.push(parseFloat(data[i]["C4Per"]));
                    } else {
                        if (project == data[i]["Project"]) {
                            tempdata.push(parseFloat(data[i]["C4Per"]));
                        }
                    }
                }
                series4["data"] = tempdata;
                seriesData.push(series4);
                var series3 = {};
                series3["name"] = "3";
                tempdata = [];
                for (var i in data) {
                    if (project == "全部") {
                        tempdata.push(parseFloat(data[i]["C3Per"]));
                    } else {
                        if (project == data[i]["Project"]) {
                            tempdata.push(parseFloat(data[i]["C3Per"]));
                        }
                    }
                }
                series3["data"] = tempdata;
                seriesData.push(series3);
                var series2 = {};
                series2["name"] = "2";
                tempdata = [];
                for (var i in data) {
                    if (project == "全部") {
                        tempdata.push(parseFloat(data[i]["C2Per"]));
                    } else {
                        if (project == data[i]["Project"]) {
                            tempdata.push(parseFloat(data[i]["C2Per"]));
                        }
                    }
                }
                series2["data"] = tempdata;
                seriesData.push(series2);
                var series1 = {};
                series1["name"] = "1";
                tempdata = [];
                for (var i in data) {
                    if (project == "全部") {
                        tempdata.push(parseFloat(data[i]["C1Per"]));
                    } else {
                        if (project == data[i]["Project"]) {
                            tempdata.push(parseFloat(data[i]["C1Per"]));
                        }
                    }
                }
                series1["data"] = tempdata;
                seriesData.push(series1);
                $("#container").empty();
                $('#container').highcharts({
                    colors: ['#a9d86e', '#ffb500', '#5eaee3', '#847eb6', '#e06292'],
                    chart: {
                        type: 'column',
                        options3d: {
                            enabled: true,
                            alpha: 15,
                            beta: 15,
                            viewDistance: 25,
                            depth: 40
                        }
                    },
                    title: {
                        text: '国民体质指标分析'
                    },
                    xAxis: {
                        categories: xname
                    },
                    yAxis: {
                        allowDecimals: false,
                        min: 0,
                        max: 100,
                        title: {
                            text: '比例'
                        }
                    },
                    tooltip: {
                        headerFormat: '<b>{point.key}</b><br>',
                        pointFormat: '<span style="color:{series.color}">u25CF</span> {series.name}: 占{point.y}%'
                    },
                    plotOptions: {
                        column: {
                            stacking: 'normal',
                            depth: 40
                        }
                    },
                    series: seriesData
                });
            }
    
    统计图:
  • 相关阅读:
    Centos启动Cassandra交互模式失败:No appropriate python interpreter found
    删除Kafka的topic
    《面向中国资本市场应用的分布式总账白皮书》笔记
    搭建Kafka集群(3-broker)
    【转】矩阵求导计算规则
    二次型求导
    解决: org.iq80.leveldb.DBException: IO error: C:data rie00945.sst: Could not create random access file.
    SSH遇见的问题
    解决:Redis:java.util.NoSuchElementException: Unable to validate object at
    【转】mysql查询结果输出到文件
  • 原文地址:https://www.cnblogs.com/xujiming/p/6030870.html
Copyright © 2020-2023  润新知