• HighCharts的使用


    HighCharts系列软件简介

    1. Highcharts

    Highcharts 是一个用纯 JavaScript 编写的一个图表库, 能够很简单便捷的在 Web 网站或是 Web 应用程序添加有交互性的图表,并且免费提供给个人学习、个人网站和非商业用途使用。Highcharts 支持的图表类型有直线图、曲线图、区域图、柱状图、饼状图、散状点图、仪表图、气泡图、瀑布流图等多达 20 种图表,其中很多图表可以集成在同一个图形中形成混合图。

    2. Highstock

    Highstock 是用纯 JavaScript 编写的股票图表控件,可以开发股票走势或大数据量的时间轴图表。它包含多个高级导航组件:预设置数据时间范围,日期选择器、滚动条、平移、缩放功能。

    3. Highmaps

    Highmaps 是一款基于 HTML5 的优秀地图组件。Highmaps 继承了 Highcharts 简单易用的特性,利用它可以方便快捷的创建用于展现销售、选举结果等其他与地理位置关系密切的交互性地图图表。Highmaps 可以单独使用,也可以作为 Highcharts 的一个组件来使用。

    HighCharts优点

    Highcharts使用的一些优点的介绍。
      1、首先、使用Highcharts能快速、简单的做出各种诸如柱状图、饼状图、曲线图等多种形式的统计图或者走势图。使用者只需要提供对应的数据、以及简单的Highcharts的配置即可。使用简单。
      2、跨语言跨平台支持多种浏览器。Highcharts是基于js制作出来的。是一个js类库。无论你使用什么后端语言,都可以很方便的使用Highcharts来做图表或者统计。
      3、使用门槛极低、稍微看一下API都可以做出各种符合要求的统计图表等。数据灵活。支持xml 和json。

    HighCharts使用

    下载插件

        若要用HighCharts的话,得先引用它的插件,插件不大,核心文件只有一个highcharts.js文件,可以去HighCharts官网上去下载:http://www.highcharts.com/download下载完成之后,就把js文件引用到项目中

    JavaScript
    <!--highcharts核心文件-->
    <script type="text/javascript" src=" 
    <!--导出需要引用的文件-->
    <script type="text/javascript" src="http://cdn.hcharts.cn/highcharts/exporting.js"></script>

    Demo

    本文以混合的Y轴折线图为例

    后台部分代码如下:

    List<Map<String, String>> list = saleService.getSaleAndBuyer();
    StringBuffer dateArray = new StringBuffer();
    StringBuffer saleArray = new StringBuffer();
    StringBuffer buyerArray = new StringBuffer();
    dateArray.append("[");
    saleArray.append("[");
    buyerArray.append("[");
    for (int i=0;i<list.size();i++) {
        dateArray.append(list.get(i).get("date"));
        //数据格式的转换
        saleArray.append(String.valueOf(list.get(i).get("salePrice")));
        buyerArray.append(String.valueOf(list.get(i).get("buyerCount")));
        if (i < list.size()-1) {
            dateArray.append(",");
            saleArray.append(",");
            buyerArray.append(",");
        }
    }
    dateArray.append("]");
    saleArray.append("]");
    buyerArray.append("]");
    request.setAttribute("dateArray", dateArray);
    request.setAttribute("saleArray", saleArray);
    request.setAttribute("buyerArray", buyerArray);
    logger.warn("登录成功");
    return "/stock/success";

    前台部分代码如下:

    <script>
        var dateList = "${dateArray}".replace("[", "").replace("]", "").split(",");
        var salePrice = "${saleArray}".replace("[", "").replace("]", "").split(",");
        var buyerCount = "${buyerArray}".replace("[", "").replace("]", "").split(",");
        for (var i = 0; i < buyerCount.length; i++) {
            buyerCount[i] = parseInt(buyerCount[i])
        };
        for (var i = 0; i < salePrice.length; i++) {
            salePrice[i] = parseFloat(salePrice[i])
        };
        var chart = {
            zoomType: 'xy'
        };
        var subtitle = {
            text: '数据来源:www.xxxxxxx.xyz'
        };
        var title = {
            text: '销售数据图'
        };
        var xAxis = {
            categories: dateList,
            crosshair: true
        };
        var yAxis = [{ // 第一条Y轴
            labels: {
                format: '{value}人',
                style: {
                    color: Highcharts.getOptions().colors[1]
                }
            },
            title: {
                text: '单日客户量',
                style: {
                    color: Highcharts.getOptions().colors[1]
                }
            }
        }, { // 第二条Y轴
            title: {
                text: '单日销售额',
                style: {
                    color: Highcharts.getOptions().colors[0]
                }
            },
            labels: {
                format: '¥{value}',
                style: {
                    color: Highcharts.getOptions().colors[0]
                }
            },
            opposite: true
        }];
        var tooltip = {
            shared: true
        };
        var legend = {
            layout: 'vertical',
            align: 'right',
            x: 0,
            verticalAlign: 'top',
            y: 0,
            floating: true,
            backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
        };
        var series = [{
            name: '单日销售额',
            type: 'column',
            yAxis: 1,
            data: salePrice,
            tooltip: {
                valueSuffix: '元'
            }
    
        }, {
            name: '单日客户量',
            data: buyerCount,
            tooltip: {
                valueSuffix: '人'
            }
        }
        ];
        var json = {};
        json.chart = chart;
        json.title = title;
        json.subtitle = subtitle;
        json.xAxis = xAxis;
        json.yAxis = yAxis;
        json.tooltip = tooltip;
        json.legend = legend;
        json.series = series;
        $('#container').highcharts(json);
    </script>

    结果如下:

    附:

  • 相关阅读:
    20155239 2016-2017-2 《Java程序设计》第5周学习总结
    学习Java的必要知识点记录
    # 20155226 2016-2017-2 《Java程序设计》第4周学习总结
    随笔三 第三周学习
    第二周学习
    吕宇轩20155239 第一周
    随笔三 安装Linux操作系统
    随笔二
    随笔一
    java动态代理(JDK和cglib)
  • 原文地址:https://www.cnblogs.com/PreachChen/p/8779728.html
Copyright © 2020-2023  润新知