HightChart简单教程

HightChart简单教程

HightCharts是一个基于纯javascript的数据图形化组件,当然如果用于企业用途需要购买授权,个人使用则免费,个人觉得HightCharts是目前我用过的效果比较炫的图形化种类较多的一种组件。我就将我个人 使用的情况做一个简单的教程。
首先从HighCharts官网https://www.hcharts.cn/ 下载最新的版本

应用环境
Hightcharts 5.0.14 + jQuery 1.8.3以上 + spring-boot

基于静态数据的图

首先我们生成基于静态数据的图
在页面引入相应的js文件

<script src="assets/js/libs/jQuery-1.8.3.min.js"></script>
<script src="assets/js/libs/highcharts/highcharts.js"></script>
<script src="assets/js/libs/highcharts/exporting.js"></script>
<script src="assets/js/libs/highcharts/highcharts-zh_CN.js"></script>

注意要先引入jquery的包再引入hightcharts的包不然可能会出错
随后在html页面添加以下内容

<div id="container" style="min-width:400px;height:400px"></div>

    <script>
    $(function () {
    $('#container').highcharts({
        chart: {
            type: 'column'
        },
        title: {
            text: '月平均降雨量'//图标题
        },
        subtitle: {
            text: '数据来源: WorldClimate.com'//图的子标题
        },
        xAxis: {
            categories: [
                '一月',
                '二月',
                '三月',
                '四月',
                '五月',
                '六月',
                '七月',
                '八月',
                '九月',
                '十月',
                '十一月',
                '十二月'
            ],//x轴的坐标
            crosshair: true//当鼠标选中某个柱的时候是否有遮罩
        },
        yAxis: {//定义y轴
            min: 0,//y轴最小值为0
            title: {
                text: '降雨量 (mm)'//y轴名称
            }
        },
        tooltip: {//定义一个弹出框当鼠标指向某个坐标柱时弹出,弹出框为一个表格
            headerFormat: '<span style="font-size:10px">{point.key}</span><table>',//point.key指的x坐标轴的值
            pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +//其中某一个y轴项的名称与后面的y轴值对应
            '<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',//默认显示的值为y轴的值:.1f表示为保留一位小数点的浮点数
            footerFormat: '</table>',
            shared: true,
            useHTML: true
        },
        plotOptions: {
            column: {
                pointPadding: 0.2,
                borderWidth: 0
            }
        },
            exporting: {//默认不带有导出功能
                enabled: false
            },
            credits: {//默认不显示highcharts的标志
                enabled: false
            },
        series: [{//图形化的数据
            name: '东京',
            data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
        }, {
            name: '纽约',
            data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3]
        }, {
            name: '伦敦',
            data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2]
        }, {
            name: '柏林',
            data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1]
        }]
    });
});
</script>

这样就能生成一个基础的柱状图,这是一个柱状图,下面我们来看一个饼状图

<div id="container" style="min-width:400px;height:400px"></div>

    <script>
    $(function () {
    $('#container').highcharts({
        chart: {
            plotBackgroundColor: null,
            plotBorderWidth: null,
            plotShadow: false
        },
        title: {
            text: '2014 某网站各浏览器浏览量占比'
        },
        tooltip: {
            headerFormat: '{series.name}<br>',
            pointFormat: '{point.name}: <b>{point.percentage:.1f}%</b>'
        },
        plotOptions: {
            pie: {
                allowPointSelect: true,
                cursor: 'pointer',
                dataLabels: {
                    enabled: true,
                    format: '<b>{point.name}</b>: {point.percentage:.1f} %',
                    style: {
                        color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                    }
                }
            }
        },
        series: [{
            type: 'pie',
            name: '浏览器访问量占比',
            data: [
                ['Firefox',   45.0],
                ['IE',       26.8],
                {
                    name: 'Chrome',
                    y: 12.8,
                    sliced: true,
                    selected: true
                },
                ['Safari',    8.5],
                ['Opera',     6.2],
                ['其他',   0.7]
            ]
        }]
    });
});
</script>

这是一个饼状图具体的参数配置类似,更多详细的简单实例可以参考下载的官方包中的demo

基于Ajax的图形化

利用ajax动态获取数据并生成相应的图也不是一件特别困难的事情,需要注意的就是按照不同的图类型组装特定的数据。

饼图的数据结构
                [
                    ['1月', 25.0],
                    ['2月', 26.8],
                    {
                        name: '3月',
                        y: 22.8,
                        sliced: true,
                        selected: true
                    },
                    ['4月', 24.6]
                ]
//因此我们需要按照这个格式生成数据

//我们先定义一个function
//院系学生百分比
function getYxxsChartData() {
    //图形数据
    var chartData = new Array();
    $.ajax({
        type: "POST",
        url: "scuvc/jw/xs/chart/yxxs",
        async: false,
        success: function (result) {//返回数据根据结果进行相应的处理
            if (result) {
                var total = 0;
                $(result).each(function (i, val) {
                    total += val[1];
                });
                //var data1 = {label:  result[0][0] , data: result[0][1], color: colours.red};
                chartData.push([result[0][0], (result[0][1] / total).toFixed(4) * 100]);
                chartData.push([result[1][0], (result[1][1] / total).toFixed(4) * 100]);
                chartData.push([result[2][0], (result[2][1] / total).toFixed(4) * 100]);
                chartData.push([result[3][0], (result[3][1] / total).toFixed(4) * 100]);
                chartData.push([result[4][0], (result[4][1] / total).toFixed(4) * 100]);
                chartData.push([result[5][0], (result[5][1] / total).toFixed(4) * 100]);
            }
        }
    });
    return chartData;
}
//然后在生成图片的时候加载数据就调用定义好的这个function
series: [{
            type: 'pie',
            name: '百分比',
            data: getYxxsChartData()
        }]
//柱状图的数据结构
series: [{
            name: '东京',
            data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
        }, {
            name: '纽约',
            data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3]
        }, {
            name: '伦敦',
            data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2]
        }, {
            name: '柏林',
            data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1]
        }]
//因为数据结构的方式不同我们又需要采用其他的数据构造方式
//同样的我们需要定义一个function,按照特定的数据结构生成所需要的数据
function getXwxlChartData(i) {
    //图形数据
    var chartData = new Array();
    $.ajax({
        type: "POST",
        url: "scuvc/zl/jzg/chart/xwxl",
        async: false,
        success: function (result) {//返回数据根据结果进行相应的处理
            if (i == 0) {
                var total = 0;
                $(result).each(function (i, val) {
                    total += val[1];
                });
                $(result).each(function (i, val) {
                    chartData.push([val[0], (val[1] / total).toFixed(4) * 100]);
                });
            } else {
                $(result).each(function (i, val) {
                    chartData.push({name: val[0], y: val[1], drilldown: val[0]})
                });
            }
        }
    });
    return chartData;
}
//最后在生成图的时候进行调用
series: getXwxlChartData(1)

由于我目前只用到了这两类图,所以先简单介绍这么多,后面如果有新图形化的使用我会继续完善上来

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
A:要使用Java Highcharts实现统计图生成,需要先进行以下步骤: 1. 安装 Java Highcharts 首先,需要从Java Highcharts官网(https://www.highcharts.com/products/highcharts/)下载Java Highcharts的库文件。 2. 引入 Java Highcharts 将下载的Java Highcharts库文件导入到你的Java项目中,并在需要用到的Java文件中引入。 3. 准备数据 准备用于生成图表的数据。 4. 创建图表 使用Java Highcharts提供的API创建处理数据后的图表。 以下是一个简单的Java Highcharts代码示例,用于生成柱状图: ```java import java.util.ArrayList; import java.util.List; import com.highcharts.export.bean.ExportType; import com.highcharts.export.bean.ExportValue; import com.highcharts.export.util.ChartUtils; public class GenerateChart { public static void main(String[] args) { // 数据 List<ExportValue> dataList = new ArrayList<ExportValue>(); dataList.add(new ExportValue("A", 10)); dataList.add(new ExportValue("B", 20)); dataList.add(new ExportValue("C", 30)); dataList.add(new ExportValue("D", 40)); dataList.add(new ExportValue("E", 50)); // 设置图表类型和标题 ChartUtils chart = new ChartUtils(); chart.setChartType(ExportType.COLUMN.toString().toLowerCase()); chart.setTitle("柱状图"); // 设置图表数据 chart.setData(dataList); // 保存图表 try { chart.exportChart("D:\\chart.png"); } catch (Exception e) { e.printStackTrace(); } } } ``` 以上是一种使用Java Highcharts实现统计图生成的方式,当然还有其他的一些方式,可以根据个人需要选择使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值