当前位置: 首页 > 工具软件 > Highstock > 使用案例 >

HighStock使用记录

柯凯旋
2023-12-01

1,需要在页面头部先导入相关JS,切记:需要先导入jQuery.main.js,然后导入Highstock.js才能正确的使用,因为Highstock是基于jQuery的。

<script type="text/javascript" src="<%=path%>/js/jquery-1.8.3.min.js"></script>

<script type="text/javascript" src="<%=path%>/js/highstock.js"></script>
<script type="text/javascript"  src="<%=path%>/js/highcharts-js/modules/exporting.js"></script>

2,进行全局设置

Highcharts.setOptions({
    global: {
        useUTC: false,//关闭UTC显示时间格式
    },
    lang: {

        shortMonths: ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'],//月份缩写
        weekdays: ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'],//周缩写
        //导航条选择器设置文字
        rangeSelectorTo: "至",
        rangeSelectorFrom: "从",
        rangeSelectorZoom: "选择范围",
        resetZoom: "重置",
        // noData: "暂无数据",
        // fontsize:14,

    }

});

3,进行初始化设置图表:

   1)、图表类型:

//图表类型
chart: {
    zoomType: "xy",
    type: "spline",
    animation: Highcharts.svg,
    marginRight: 10,

},

   2)、版权信息是否显示:默认为true

//版权信息
credits: {
    enabled: false
},

   3)、数据导航:navigator

//数据导航
navigator: {
    adaptToUpdatedData: true,
    xAxis: {
        labels: {
            format: '{value:%Y-%m-%d}',
        },
    },
},

 4)、导航按钮设置:rangeselector

//选择器快捷按钮
rangeSelector: {
    buttons: [{
        type: 'day',
        count: 1,
        text: '1天',
    }, {
        type: 'day',
        count: 3,
        text: '3天'
    }, {
        type: 'week',
        count: 1,
        text: '7天'
    }, {
        type: 'month',
        count: 1,
        text: '1月'
    }, {
        type: 'all',
        text: '所有'
    }],
    selected: 1,
},

   5)、pointOptions:数据列配置

//             数据列配置是针对所有数据列及某种数据列有效的通用配置。
//              数据列的配置有三个级别:
//                  配置在 plotOptions.series,针对所有图表类型有效
//                  配置在 plotOptions.<数据列类型>,针对某种数据列有效
//                  配置在 series,针对某个数据列有效
            pointOptions: {
                series: {
                    showInLegend: true,
                    turboThreshold:dataLength,
                },
            },


  6)、legend:显示图表

//获取一个实例图表
legend: {
    enabled: true//控制图例的显示,默认为true
},
//显示图表标题
title: {
    text: "藻类历史数据"
},

  7)、XY轴属性设置:

//X轴属性设置
xAxis: {
    type: 'datetime',

    dateTimeLabelFormats: {
        second: '%m-%d<br/>%H:%M:%S',
        minute: '%m-%d<br/>%H:%M',
        hour: '%m-%d<br/>%H:%M',
        day: '%Y<br/>%m-%d',
        week: '%Y<br/>%m-%d',
        month: '%Y-%m',
        year: '%Y'
    }
},
//Y轴属性的设置
yAxis: {
    opposite: false,
    title: {
        text: "单位:浓度(%)",
    },
    plotLines: [{
        value: 0,
        width: 1,
        color: '#808080'
    }],
},

  8)、导出功能是否开启

//开启导出
exporting: {
    enable: true,  //false为关闭
},

 9)、数据提示:

tooltip: {
    shared: true, //是否共享提示,也就是X一样的所有点都显示出来
    xDateFormat: '%Y-%m-%d %H:%M:%S',
    useHTML: true, //是否使用HTML编辑提示信息
    headerFormat: '<small>{point.key}</small><table>',
    pointFormat: '<tr><td style="color: {series.color}">{series.name}: </td>'
    + '<td style="text-align: right"><b>{point.y}</b></td></tr>',
    footerFormat: '</table>',
    valueDecimals: 2
    //数据值保留小数位数
},

  10)、数据

//数据
series: [{
    name: "蓝藻",
    //turboThreshold:dataLength,
    data: (function () {
        var data = [], i;
        //如使用动态长度请确保此处的长度值不可越界,否则会导致X轴时间出现错误,开始时间从1970年
        for (i = 0; i < dataLength; i++) {
            data.push({
                x: dataTimes[i],
                y: parseFloat(bluealgae[i]),
            });
            //console.log(data[i]); 此为在浏览器控制台输出
        }

        return data;
    })(),
    visible: true,
    // pointStart: Date.UTC(2018, 3, 1),
    pointInterval: 3 * 1000,

}]

说明:dataLength在上面JS中已经定义并根据后台获取数据的长度赋值,所以数据长度为动态

4,HighStock还有很多的属性,请参考API文档,在线地址:https://api.hcharts.cn/highstock


 类似资料: