highchart应用示例2-上:圆角柱状图,下:多指标曲线图

Posted tiandi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了highchart应用示例2-上:圆角柱状图,下:多指标曲线图相关的知识,希望对你有一定的参考价值。

1、ajax调用接口获取数据

    function getCityData()
    {
        var date1 = $(‘#datetimepicker1‘).val();
        var date2 = $(‘#datetimepicker2‘).val();

        var params = { ‘date1‘: date1, ‘date2‘: date2, ‘city‘: ‘荣成‘,‘type‘:type};
        $.getJSON(‘http://127.0.0.1:8081/rcforeInterface/rest/services/getAirSplineData‘, params, function (datas)
        {
            //删除历史数据
            dataAQI.splice(0, dataAQI.length);
            dataPM25.splice(0, dataPM25.length);
            dataPM10.splice(0, dataPM10.length);
            dataCO.splice(0, dataCO.length);
            dataNO2.splice(0, dataNO2.length);
            dataO3.splice(0, dataO3.length);
            dataSO2.splice(0, dataSO2.length);

            if (datas.length == 0) { showChartByItems(); return; }

            datas.forEach(function (item, index, dataRow) 
            {
                time =item.datetime;
                aqi = Number(item.aqi);
                pm2_5 = Number(item.pm25);
                pm10 = Number(item.pm10);
                co = Number(item.co);
                no2 = Number(item.no2);
                o3 = Number(item.o3_8);
                so2 = Number(item.so2);

                if (aqi == 0) aqi = null;
                if (pm2_5 == 0) pm2_5 = null;
                if (pm10 == 0) pm10 = null;
                if (co == 0) co = null;
                if (no2 == 0) no2 = null;
                if (o3 == 0) o3 = null;
                if (so2 == 0) so2 = null;
                
                aqiIndex = getAQILevelIndex(aqi);

                dataAQI.push({ x: converTimeFormat(time).getTime(), y: aqi, color: getColorByIndex(aqiIndex)});
                dataPM25.push({ x: converTimeFormat(time).getTime(), y: pm2_5 });
                dataPM10.push({ x: converTimeFormat(time).getTime(), y: pm10 });
                dataSO2.push({ x: converTimeFormat(time).getTime(), y: so2 });
                dataNO2.push({ x: converTimeFormat(time).getTime(), y: no2 });
                dataCO.push({ x: converTimeFormat(time).getTime(), y: co });
                dataO3.push({ x: converTimeFormat(time).getTime(), y: o3 });
                
            });
            showChartByItems();
        });
    }

2、根据选择条件,调用显示chart

function showChartByItems()
    {
        showLineChartWithAQI(‘chart1‘, dataAQI, "", "AQI",type.toUpperCase());
        showLineChartWithWRW(‘chart2‘, dataPM25, dataPM10, dataSO2, dataNO2, dataCO, dataO3, type.toUpperCase());

    }

3、显示上部的圆角柱状图

function showLineChartWithAQI(container, dataArray1, unit1, labelStr1, type)
    {
        var dateTypeFormat;
        var itemcolor1 = "#D26900";
        var itemcolor2 = "#4F81BD";
        if (type == "HOUR")
        {
            dateTypeFormat = ‘%Y-%m-%d %H:%M‘;
        }
        else if (type == "DAY")
        {
            dateTypeFormat = ‘%Y-%m-%d‘;
        }
        else if (type == "MONTH")
        {
            dateTypeFormat = ‘%Y-%m‘;
        }

        markerShowFlag = true;

        $(‘#‘ + container).highcharts({
            chart: {
                type: ‘column‘,
                zoomType: ‘x‘,
                spacingLeft: 0,
                spacingRight: 0
            },
            title: {
                text: ‘荣成市空气质量AQI分布‘,
                style: {
                    color: ‘#000000‘,
                    fontSize: ‘18px‘,
                    fontFamily: ‘微软雅黑‘
                },
            },
            xAxis: {
                type: ‘datetime‘,
                labels: { style: { fontSize: ‘14px‘ } },
                dateTimeLabelFormats: {
                    millisecond: ‘%H:%M:%S.%L‘,
                    second: ‘%H:%M:%S‘,
                    minute: ‘%H:%M‘,
                    hour: ‘%H时‘,
                    day: ‘%m月%d日‘,
                    week: ‘%m-%d‘,
                    month: ‘%Y-%m‘,
                    year: ‘%Y‘
                }
            },
            yAxis: [{
                title: {
                    text: labelStr1,
                    style: {
                        color: ‘#000000‘,
                        fontSize: ‘14px‘,
                    },
                },
                labels: {
                    format: ‘{value}‘ + unit1,
                    style: {
                        color: ‘#000000‘,
                        fontSize: ‘14px‘,
                    }
                },
                min: 0
            }],
            tooltip: {
                shared: true,
                usehtml: true,
                formatter: function () {
                    var arr = [];
                    tip = ‘<span style="font-size:16px;color:black">‘ + Highcharts.dateFormat(dateTypeFormat, this.x) + ‘</span><br/><hr style="margin:3px 0;"/>‘
                        + "<table width=‘120px‘ style=‘font-size:16px‘>";
                    tip = tip + "<tr><td style=‘color:" + this.points[0].series.color + "‘>" + this.points[0].series.name + ": </td><td align=‘right‘><b>" + this.points[0].y + "</b>" + unit1 + "</td></tr>";
                    tip = tip + "</table>";
                    return tip;
                }
            },
            plotOptions: {
                series: {
                    marker: {
                        enabled: markerShowFlag,
                        radius: 3
                    },
                    enableMouseTracking: true,
                    turboThreshold: 0
                },
                column: {
                    dataLabels: {
                        enabled: true
                    },
                    pointPadding: 0.1,
                    borderWidth: 0,
                    groupPadding: 0,
                    shadow: false
                }
            },
            legend: {
                enabled: false
            },
            credits: {
                enabled: false
            },
            exporting:{
                buttons:{    
                    contextButton: {
                        menuItems: [{
                            text: ‘导出图片‘,
                            onclick: function () {
                                this.exportChart();
                            }
                        }]
                    },
            },
                filename: ‘荣成市空气质量AQI分布‘,//导出的文件名
                type: ‘image/png‘,//导出的文件类型
                sourceWidth: chartWidth,
                sourceHeight: chartHeight,
                scale:1
        },
            series: [{
                name: labelStr1,
                data: dataArray1,
                color: itemcolor1,
                yAxis: 0,
                borderRadius:7
            }]
        });
        var chartObj = $(‘#‘ + container).highcharts();

    }

4、显示下部的,多指标曲线图

function showLineChartWithWRW(container, dataPM25, dataPM10, dataSO2, dataNO2, dataCO, dataO3, type)
    {
        var unit1 = "ug/m<sup>3<sup/>"
        var unit2 = "mg/m<sup>3<sup/>"
        var dateTypeFormat;
        var itemcolor1 = "#D26900";
        var itemcolor2 = "#4F81BD";
        if (type == "HOUR")
        {
            dateTypeFormat = ‘%Y-%m-%d %H:%M‘;
        }
        else if (type == "DAY")
        {
            dateTypeFormat = ‘%Y-%m-%d‘;
        }
        else if (type == "MONTH")
        {
            dateTypeFormat = ‘%Y-%m‘;
        }

        markerShowFlag = true;

        $(‘#‘ + container).highcharts({
            chart: {
                type: ‘spline‘,
                zoomType: ‘x‘,
                spacingLeft: 0,
                spacingRight: 0
            },
            title: {
                text: ‘荣成市空气质量污染曲线分析‘,
                style: {
                    color: ‘#000000‘,
                    fontSize: ‘18px‘,
                    fontFamily: ‘微软雅黑‘
                },
            },
            xAxis: {
                type: ‘datetime‘,
                labels: { style: { fontSize: ‘14px‘ } },
                dateTimeLabelFormats: {
                    millisecond: ‘%H:%M:%S.%L‘,
                    second: ‘%H:%M:%S‘,
                    minute: ‘%H:%M‘,
                    hour: ‘%H时‘,
                    day: ‘%m月%d日‘,
                    week: ‘%m-%d‘,
                    month: ‘%Y-%m‘,
                    year: ‘%Y‘
                }
            },
            yAxis: [{
                title: {
                    text: "污染物浓度",
                    style: {
                        color: ‘#000000‘,
                        fontSize: ‘14px‘,
                    },
                },
                labels: {
                    format: ‘{value}‘ + unit1,
                    style: {
                        color: ‘#000000‘,
                        fontSize: ‘14px‘,
                    }
                },
                min: 0
            }],
            tooltip: {
                shared: true,
                useHTML: true,
                formatter: function ()
                {
                    var arr = [];
                    tip = ‘<span style="font-size:16px;color:black">‘ + Highcharts.dateFormat(dateTypeFormat, this.x) + ‘</span><br/><hr style="margin:3px 0;"/>‘
                        + "<table width=‘120px‘ style=‘font-size:16px‘>";
                    tip = tip + "<tr><td style=‘color:" + this.points[0].series.color + "‘>" + this.points[0].series.name + ": </td><td align=‘right‘><b>" + this.points[0].y + "</b>" + unit1 + "</td></tr>";
                    tip = tip + "<tr><td style=‘color:" + this.points[1].series.color + "‘>" + this.points[1].series.name + ": </td><td align=‘right‘><b>" + this.points[1].y + "</b>" + unit1 + "</td></tr>";
                    tip = tip + "<tr><td style=‘color:" + this.points[2].series.color + "‘>" + this.points[2].series.name + ": </td><td align=‘right‘><b>" + this.points[2].y + "</b>" + unit1 + "</td></tr>";
                    tip = tip + "<tr><td style=‘color:" + this.points[3].series.color + "‘>" + this.points[3].series.name + ": </td><td align=‘right‘><b>" + this.points[3].y + "</b>" + unit1 + "</td></tr>";
                    tip = tip + "<tr><td style=‘color:" + this.points[4].series.color + "‘>" + this.points[4].series.name + ": </td><td align=‘right‘><b>" + this.points[4].y + "</b>" + unit1 + "</td></tr>";
                    tip = tip + "</table>";
                    return tip;
                }
            },
            plotOptions: {
                series: {
                    marker: {
                        enabled: markerShowFlag,
                        radius: 3
                    },
                    enableMouseTracking: true,
                    turboThreshold: 0
                }
            },
            legend: {
                enabled: true
            },
            credits: {
                enabled: false
            },
            exporting: {
                buttons: {
                    contextButton: {
                        menuItems: [{
                            text: ‘导出图片‘,
                            onclick: function () {
                                this.exportChart();
                            }
                        }]
                    },
                },
                filename: ‘荣成市空气质量污染曲线分析‘,//导出的文件名
                type: ‘image/png‘,//导出的文件类型
                sourceWidth: chartWidth,
                sourceHeight: chartHeight,
                scale: 1
            },
            series: [{
                name: "PM2.5浓度",
                data: dataPM25,
                color: "#4F81BD",
                yAxis: 0
            }, {
                name: "PM10浓度",
                data: dataPM10,
                color: "#C0504D",
                yAxis: 0
            }, {
                name: "SO2浓度",
                data: dataSO2,
                color: "#9BBB59",
                yAxis: 0
            }, {
                name: "NO2浓度",
                data: dataNO2,
                color: "#8064A2",
                yAxis: 0
            },  {
                name: "O3浓度",
                data: dataO3,
                color: "#F79646",
                yAxis: 0
            }]
        });
        var chartObj = $(‘#‘ + container).highcharts();

    }

 

以上是关于highchart应用示例2-上:圆角柱状图,下:多指标曲线图的主要内容,如果未能解决你的问题,请参考以下文章

如何用highcharts制作3d图

highcharts stockchart 怎么设置图例,

如何在highcharts柱状图初始化的时候在柱状图上显示数据

Highcharts之3D柱状图

关于HighCharts由表格生成的柱状图改变柱状图颜色

highchart 柱状图,单个样例