Highcharts图表简单demo

html页:

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <script src="~/Content/jquery-3.3.1.min.js"></script>
    <script src="~/Content/highcharts.js"></script>
    <script src="~/Content/highcharts-3d.js"></script>
    <script src="~/Script/Demo_Index.js"></script>
    <title>Index</title>
</head>
<body>
    <div>
        <div id="lineChart"></div>
        <div id="columnChart"></div>
        <div id="pieChart"></div>
    </div>
</body>
</html>

js页:

//Highcharts using demo

var value;
$(function () {

    getData();

    drawLine();

    drawColumn();

    drawPie();
});

//取数据
function getData() {
    //取数据
    value = '{' +
        'val:' +
        '[' +
        '{ "name": "炉石旅店", "data": "[[2010, 1000], [2012, 500], [2013, 900], [2015, 100], [2017, 3000],]" },' +
        '{ "name": "谢尔顿", "data": "[[2006, 200], [2008, 500], [2013, 300], [2015, 200], [2017, 3300],]" },' +
        '{ "name": "7天", "data": "[[2010, 1000], [2012, 500], [2013, 1000], [2015, 100], [2017, 3000],]" },' +
        '{ "name": "如家", "data": "[[2010, 1000], [2012, 500], [2013, 900], [2015, 100], [2017, 3000],]" },' +
        ']' +
        '} ';
}

//折线图
function drawLine() {
    //设置图表基本属性
    var chart = {
        type: 'line',
        options3d: {
            enabled: true,      //开启3D
            alpha: 15,            //右视图顺时针旋转角度(可负)
            beta: -15,            //俯视图顺时针旋转角度(可负)
            depth: 120,        //图表的合计深度,默认为100
        }
    };
    //标题
    var title = {
        text: "旅店历年营业状况统计"
    };
    //副标题
    var subtitle = {
        text: '数据来源:自己编的'
    };
    //X轴属性
    var xAxis = {
        title: {
            text: '年份'
        },
        //若为固定值,可用下面这种
        //categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
        //    'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    };
    //Y轴属性
    var yAxis = {
        title: {
            text: '营业额'
        }
    };
    //图例属性
    var legend = {
        layout: 'horizontal',                //排列方式:vertical垂直/horizontal水平
        align: 'right',                            //水平方向位置:left/right
        verticalAlign: 'top',                //垂直方向位置:top/middle/bottom
    };
    //数值点属性
    var plotOptions = {
        line: {
            //点上显示数值
            dataLabels: {
                enabled: true
            },
            //禁用鼠标触发
            enableMouseTracking: false
        }
    };
    /*折线图标准数据格式
    当x轴为固定值时,data为Y轴数据数组
    若为不连续点,data应使用[[x1,y1][x2,y2],[x3,y3]...]的形式*/
    var series = [
        {
            name: 'Tokyo',
            data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2,
                26.5, 23.3, 18.3, 13.9, 9.6]
        },
        {
            name: 'New York',
            data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8,
                24.1, 20.1, 14.1, 8.6, 2.5]
        },
        {
            name: 'London',
            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]
        }
    ];

    //动态绑定数据
    var jdata = eval("(" + value + ")");
    var val = jdata.val;
    var series = new Array();
    for (var i = 0; i < val.length; i++) {
        series[i] = new Object();
        series[i].name = val[i].name;
        series[i].data = eval("(" + val[i].data + ")");
    }

    var json = {};
    json.chart = chart;
    json.title = title;
    json.subtitle = subtitle;
    json.xAxis = xAxis;
    json.yAxis = yAxis;
    json.legend = legend;
    json.series = series;
    json.plotOptions = plotOptions;
    $('#lineChart').highcharts(json);
}

//柱状图
function drawColumn() {
    //设置图表基本属性
    var chart = {
        type: 'column',
        options3d: {
            enabled: true,      //开启3D
            alpha: 15,            //右视图顺时针旋转角度(可负)
            beta: -15,            //俯视图顺时针旋转角度(可负)
            depth: 120,        //图表的合计深度,默认为100
        }
    };
    //标题
    var title = {
        text: "旅店历年营业状况统计"
    };
    //副标题
    var subtitle = {
        text: '数据来源:自己编的'
    };
    //X轴属性
    var xAxis = {
        title: {
            text: '年份'
        },
        //若为固定值,可用下面这种
        //categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
        //    'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    };
    //Y轴属性
    var yAxis = {
        title: {
            text: '营业额'
        }
    };
    //图例属性
    var legend = {
        layout: 'horizontal',                //排列方式:vertical垂直/horizontal水平
        align: 'right',                            //水平方向位置:left/right
        verticalAlign: 'top',                //垂直方向位置:top/middle/bottom
    };
    //数值点属性
    var plotOptions = {
        column: {
            //点上显示数值
            dataLabels: {
                enabled: true
            },
            //禁用鼠标触发
            //enableMouseTracking: false
        }
    };
    //动态绑定数据
    var jdata = eval("(" + value + ")");
    var val = jdata.val;
    var series = new Array();
    for (var i = 0; i < val.length; i++) {
        series[i] = new Object();
        series[i].name = val[i].name;
        series[i].data = eval("(" + val[i].data + ")");
    }

    var json = {};
    json.chart = chart;
    json.title = title;
    json.subtitle = subtitle;
    json.xAxis = xAxis;
    json.yAxis = yAxis;
    json.legend = legend;
    json.series = series;
    json.plotOptions = plotOptions;
    $('#columnChart').highcharts(json);
}

//饼状图
function drawPie() {
    //图标基本设定
    var chart = {
        type: 'pie',
        //开启3D
        options3d: {
            enabled: true,
            alpha: 45,
            beta: 0
        }
    };
    //主标题
    var title = {
        text: "13年旅店历年营业状况统计"
    };
    //副标题
    var subtitle = {
        text: '数据来源:自己编的'
    };
    //提示设置
    var tooltip = {
        //格式化提示说明
        pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
    };
    //数值点属性
    var plotOptions = {
        pie: {
            allowPointSelect: true,
            cursor: 'pointer',
            depth: 35,
            dataLabels: {
                enabled: true,
                format: '{point.name}'
            },
            //显示图例
            showInLegend: true,
            //自定义事件
            events: {
                click: function (e) {
                    alert(e.point.name + "13年的营业额为" + e.point.y);
                }
            }
        }
    };
    //饼状图标准数据格式
    var series = [{
        name: 'Browser share',
        data: [
            ['Firefox', 45.0],
            ['IE', 26.8],
            {
                name: 'Chrome',
                y: 12.8,
                sliced: true,
                selected: true
            },
            ['Safari', 8.5],
            ['Opera', 6.2],
            ['Others', 0.7]
        ]
    }];

    //动态绑定数据
    var jdata = eval("(" + value + ")");
    var val = jdata.val;
    var data = new Array();
    for (var i = 0; i < val.length; i++) {
        var arr = new Array();
        arr[0] = val[i].name;
        var jsdata = eval("(" + val[i].data + ")");
        if (jsdata.length > 0) {
            for (var j = 0; j < jsdata.length; j++) {
                if (jsdata[j][0] == "2013") {
                    arr[1] = jsdata[j][1];
                    break;
                }
            }
        }
        data.push(arr);
    }
    var series = [{
        name: '营业额占比',
        data: data
    }];

    var json = {};
    json.chart = chart;
    json.title = title;
    json.subtitle = subtitle;
    json.tooltip = tooltip;
    json.series = series;
    json.plotOptions = plotOptions;

    $('#pieChart').highcharts(json);


}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值