您的位置:首页 > Web前端 > JavaScript

Highcharts 基于web的纯javascript图表库

2014-03-03 11:15 274 查看
背景

本文主要是作为Highcharts的入门级介绍。和大家分享这个好用的图标库,详情使用方法请访问http://www.highcharts.me/

Highcharts简介

Highcharts是一款纯Javascript图表库,让开发者很容易在Web网站、Web应用中创建交互性的图表。Highcharts目前支持line , spline, area, areaspline, column, bar, pie, scatter, angular gauges, arearange,areasplinerange, columnrange, bubble, box plot, error bars, funnel, waterfall 和 polar等各种类型图表。



兼容性:


Highcharts支持目前所有现在浏览器,包括IE6、iPhone/ipad。标准(W3C标准)的浏览器用SVG图形渲染,在遗留的IE浏览器中用VML绘图。

图表类型丰富

Highcharts目前支持 line , spline, area, areaspline, column, bar, pie, scatter, angular gauges,arearange, areasplinerange, columnrange, bubble, box plot, error bars, funnel, waterfall 和 polar等各种类型图表。其中很多种图表可以集成在同一个图中形成综合图。

动态性

提供丰富的API接口方便在创建图表后对图表的任意点、线、文字等进行增加、删除、修改操作。支持众多的Javascript时间,结合Jquery、MooTools、Prototype 提供的Ajax接口,可以实时的从服务器取得数据并实时刷新图表。

多轴支持

对于需要比较的数据,Highcharts提供多轴支持。并且每个轴可以方便设置其位置、文字、样式等。

动态提示框

当鼠标划过图表时,Highcharts会显示信息提示框,显示当前点的信息,当然,显示的内容和样式可以动态指定。

图表导出和打印功能

你可以将Highcharts图表导出为PNG、JPG、PDF、SVG格式文件或直接在网页上打印出来。

图表缩放

可以设置图表的缩放,让你更方便查看图表数据。

支持外部数据加载

Highcharts支持多种数据形式,可以是Javascript数组,json文件、json对象、表格等,这些数据来源可以使本地、不同页面,甚至是不同网站。

我的第一个Highcharts图表

运行环境

Highcharts完全基于本地浏览器技术,不需要任何插件,比如Flash、java,可以运行在任何现代浏览器,包括移动终端以及IE6,标准的浏览器用 SVG技术渲染图表,对于遗留的浏览器,则用VML来绘图。

安装

Highcharts运行需要两个js文件,Highcharts.js和 Jquery、MooTools 、Prototype 、Highcharts Standalone Framework 其中的一个框架库文件。推荐使用Highcharts.js和jquery的组合。

通过CND 引入必须的js文件

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

<script src="http://code.highcharts.com/highcharts.js"></script>

引入本地js文件

<script src="js/jquery.min.js"></script>

<script src="js/highcharts.js"></script>

Html代码

<html>

<head>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

<script type="text/javascript" src="http://code.highcharts.com/highcharts.js"></script>

<script>

$(function () {

$('#container').highcharts({

chart: {

type: 'column'

},

title: {

text: 'My first Highcharts chart'

},

xAxis: {

categories: ['my', 'first', 'chart']

},

yAxis: {

title: {

text: 'something'

}

},

series: [{

name: 'Jane',

data: [1, 0, 4]

}, {

name: 'John',

data: [5, 7, 3]

}]

});

});

</script>

</head>

<body>

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

</body>

</html>

修改主题

<script type="text/javascript" src="/js/themes/gray.js"></script>

曲线图

Html代码

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>Highcharts Example</title>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

<script type="text/javascript">

$(function () {

$('#container').highcharts({

title: {

text: 'Monthly Average Temperature',

x: -20 //center

},

subtitle: {

text: 'Source: WorldClimate.com',

x: -20

},

xAxis: {

categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',

'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

},

yAxis: {

title: {

text: 'Temperature (°C)'

},

plotLines: [{

value: 0,

width: 1,

color: '#808080'

}]

},

tooltip: {

valueSuffix: '°C'

},

legend: {

layout: 'vertical',

align: 'right',

verticalAlign: 'middle',

borderWidth: 0

},

series: [{

name: 'Tokyo',

data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]

}, {

name: 'New York',

data: [-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5]

}, {

name: 'Berlin',

data: [-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0]

}, {

name: 'London',

data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]

}]

});

});

</script>

</head>

<body>

<script src="../../js/highcharts.js"></script>

<script src="../../js/modules/exporting.js"></script>

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

</body>

</html>

饼状图

Html代码

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>Highcharts Example</title>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

<script type="text/javascript">

$(function () {

$('#container').highcharts({

chart: {

plotBackgroundColor: null,

plotBorderWidth: null,

plotShadow: false

},

title: {

text: 'Browser market shares at a specific website, 2010'

},

tooltip: {

pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'

},

plotOptions: {

pie: {

allowPointSelect: true,

cursor: 'pointer',

dataLabels: {

enabled: true,

color: '#000000',

connectorColor: '#000000',

format: '<b>{point.name}</b>: {point.percentage:.1f} %'

}

}

},

series: [{

type: 'pie',

name: 'Browser share',

data: [

['Firefox', 45.0],

['IE', 26.8],

{

name: 'Chrome',

y: 12.8,

sliced: true,

selected: true

},

['Safari', 8.5],

['Opera', 6.2],

['Others', 0.7]

]

}]

});

});

</script>

</head>

<body>

<script src="../../js/highcharts.js"></script>

<script src="../../js/modules/exporting.js"></script>

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

</body>

</html>

柱状图

Html代码

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>Highcharts Example</title>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

<script type="text/javascript">

$(function () {

var colors = Highcharts.getOptions().colors,

categories = ['MSIE', 'Firefox', 'Chrome', 'Safari', 'Opera'],

name = 'Browser brands',

data = [{

y: 55.11,

color: colors[0],

drilldown: {

name: 'MSIE versions',

categories: ['MSIE 6.0', 'MSIE 7.0', 'MSIE 8.0', 'MSIE 9.0'],

data: [10.85, 7.35, 33.06, 2.81],

color: colors[0]

}

}, {

y: 21.63,

color: colors[1],

drilldown: {

name: 'Firefox versions',

categories: ['Firefox 2.0', 'Firefox 3.0', 'Firefox 3.5', 'Firefox 3.6', 'Firefox 4.0'],

data: [0.20, 0.83, 1.58, 13.12, 5.43],

color: colors[1]

}

}, {

y: 11.94,

color: colors[2],

drilldown: {

name: 'Chrome versions',

categories: ['Chrome 5.0', 'Chrome 6.0', 'Chrome 7.0', 'Chrome 8.0', 'Chrome 9.0',

'Chrome 10.0', 'Chrome 11.0', 'Chrome 12.0'],

data: [0.12, 0.19, 0.12, 0.36, 0.32, 9.91, 0.50, 0.22],

color: colors[2]

}

}, {

y: 7.15,

color: colors[3],

drilldown: {

name: 'Safari versions',

categories: ['Safari 5.0', 'Safari 4.0', 'Safari Win 5.0', 'Safari 4.1', 'Safari/Maxthon',

'Safari 3.1', 'Safari 4.1'],

data: [4.55, 1.42, 0.23, 0.21, 0.20, 0.19, 0.14],

color: colors[3]

}

}, {

y: 2.14,

color: colors[4],

drilldown: {

name: 'Opera versions',

categories: ['Opera 9.x', 'Opera 10.x', 'Opera 11.x'],

data: [ 0.12, 0.37, 1.65],

color: colors[4]

}

}];

function setChart(name, categories, data, color) {

chart.xAxis[0].setCategories(categories, false);

chart.series[0].remove(false);

chart.addSeries({

name: name,

data: data,

color: color || 'white'

}, false);

chart.redraw();

}

var chart = $('#container').highcharts({

chart: {

type: 'column'

},

title: {

text: 'Browser market share, April, 2011'

},

subtitle: {

text: 'Click the columns to view versions. Click again to view brands.'

},

xAxis: {

categories: categories

},

yAxis: {

title: {

text: 'Total percent market share'

}

},

plotOptions: {

column: {

cursor: 'pointer',

point: {

events: {

click: function() {

var drilldown = this.drilldown;

if (drilldown) { // drill down

setChart(drilldown.name, drilldown.categories, drilldown.data, drilldown.color);

} else { // restore

setChart(name, categories, data);

}

}

}

},

dataLabels: {

enabled: true,

color: colors[0],

style: {

fontWeight: 'bold'

},

formatter: function() {

return this.y +'%';

}

}

}

},

tooltip: {

formatter: function() {

var point = this.point,

s = this.x +':<b>'+ this.y +'% market share</b><br/>';

if (point.drilldown) {

s += 'Click to view '+ point.category +' versions';

} else {

s += 'Click to return to browser brands';

}

return s;

}

},

series: [{

name: name,

data: data,

color: 'white'

}],

exporting: {

enabled: false

}

})

.highcharts(); // return chart

});

</script>

</head>

<body>

<script src="../../js/highcharts.js"></script>

<script src="../../js/modules/exporting.js"></script>

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

</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: