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文件引用到项目中
<!--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>
结果如下:
附:
-
Highcharts官网:http://www.highcharts.com
-
Highcharts官网Demo:http://www.highcharts.com/demo
-
Highcharts官网文档:http://www.highcharts.com/docs
-
Highcharts官网API:http://api.highcharts.com/highcharts