Highcharts绘图在项目中的运用

一、Highcharts简介

1. 作用

官方介绍:Highcharts 是用纯 JavaScript 编写的一个基于HTML5图表库,能够很简单便捷的在 Web 网站或是 Web 应用程序添加有交互性的图表。

简单的说,Highcharts就是一款JS操作的画图软件,一般用来在Web前端直观地展示后端传过来的数据。

Highcharts包含多种类型的图表:直线图、曲线图、区域图、柱状图、饼状图、散状点图、仪表图、气泡图、瀑布流图等。

2. 优势

⑴ 兼容性好且开源;

⑵ 使用方便,不需要安装额外的插件,仅需两个JS文件即可执行;

⑶ 配置简单,Highcharts中所有的配置都是通过JSON对象实现(配置本身不需要深奥的编程技术,重点在于对数据的处理);

⑷ 动态交互,实时刷新数据;

3. 具体使用(引用官方示例)


分析:Highcharts基本组成如下,标题、坐标轴、数据列、数据提示框、图例等。

标题 - title:包含标题(title)和 副标题(subtitle)

坐标轴:横轴xAxis,纵轴yAxis

数据列 - series:图表中的某一条数据,比如曲线图中的一条曲线,柱状图中的一个矩形等

数据提示框 - tooltip:当鼠标悬停在某点上时,以框的形式提示该点的数据,比如该点的值、数据单位等,提示的信息可通过函数动态指定。

图例 - legend:用不同形状、颜色、文字等 标示不同数据列。

导出 - exporting:通过引入exporting.js即可增加图表导出为常见文件的功能。

版权标签 - credits:显示在图表右下方的包含链接的文字。

⑴ 简单运用

① 创建Div容器(展示图表的地方)

<div id="container" style="min-width:800px;height:400px"></div> ( 注:DIV容器的id必须与JQuery的选择器对应)

② 编写图表配置代码(引用官方示例)

<script>
$(function () { 
  $('#container').highcharts({                  //图表展示容器,与 div 的 id 保持一致
      chart: {
          type: 'bar'                           //指定图表的类型,默认是折线图(line)
      },
      title: {
          text: '我的第一个图表'                //指定图表标题
      },
      xAxis: {
          categories: ['苹果', '香蕉', '橙子']  //指定x轴分组
      },
      yAxis: {
          title: {
              text: 'something'                 //指定y轴的标题
          }
      },
      series: [{                                //指定数据列
          name: '小明',                         //数据列名
          data: [1, 0, 4]                       //数据
      }, {
          name: '小红',
          data: [5, 7, 3]
      }]
  });
});
</script>
⑵ 动态配置

* 绘制highcharts图表的重点在于处理数据。与上例不同的是,一般我们将Ajax请求后台得到的数据动态地添加到series中。

方式:

var options = {
	chart: {
  		type: 'column',
       		renderTo: 'container'
  	},
	title: {
  		text: null
	},
	subtitle: {
		text: null
	},
	xAxis: {
		categories: ['总额','国税','地税'],
		tickmarkPlacement:'on',
		step: 1,
		staggerLines: 1
	},
	yAxis: {
		min: 0,
		title: {
			text: null
       	        }
	},
	labels: {
		style: {                            // 标签全局样式
			color: "#000000",
			fontSize: '13px'
		},
		items: [{                           // items 数组,可以设置多个标签
			html: '单位:万元',
			style: {                    // 标签样式,会继承和重写上层全局样式	       	              	
				top: '-32px'
			}
		}]
	}, 
	legend: {
       	        verticalAlign: 'top',
       	        align: 'right',
       	        y: -10
       	},
	tooltip: {
		formatter:function(){
			return this.y+"万元";
                }
	},
	credits:{
		enabled:false
	},
	plotOptions: {                          // 是否显示提示
		column: {
			pointPadding: 0.2
		},
		series:{
			borderWidth: 0,
			dataLabels: {
				enabled: true
			}
		}
	},
	series: [{
		name: '本期',
		data: []
	}, {
		name: '上年同期',
		data: []
	}]
};
options.series[0].data = data1;
options.series[1].data = data2;
var chart = new Highcharts.Chart(options);

通过JSON对象的方式将数据动态传入图表中,这里只是举个栗子。具体数据来源通过后端解析,可用Ajax请求调用。

鉴于官方文档提供的各类配置比较详细,以上仅列出一些常见的配置以及我在项目中使用的方法。

2016/12/5 ......后续更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值