Highcharts.js -纯javasctipt图表库初体验
一.highcharts简介以及引入
highcharts作为免费提供给个人学习、个人网站和非商业用途使用的前端图表演示插件的确使用起来十分方便和轻便。在我最近完成一个需求的时候用到了它, 它的兼容性也很强,其在标准(W3C标准)浏览器中使用SVG技术渲染图形,在遗留的IE浏览器中使用VML技术来绘图。我们在使用highcharts的时候只需要引入highcharts.js 及 jQuery 、 MooTools 、Prototype 、Highcharts Standalone Framework 常用 JS 框架中的一个,在此我们使用jQuery。
只需在你的项目中如此引用就能方便的调用它的各种函数
<script src="./jquery-1.8.3.min.js"></script>
<script src="./highcharts.js"></script>
二.常用图表介绍
HighCharts支持图表类型,包括曲线图、区域图、柱状图、饼状图、散状点图和综合图表等,在此主要介绍一下饼图,柱状图以及线性图的属性和调用方法。
首先要确保如上的代码正确引用,新建一个index.html,加入以下代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="js/jquery-2.1.4.js"></script>
<script src="js/highcharts.js"></script> <script>
var params ={ };
$(function () {
$('.pieChart').highcharts({
chart: {
plotBackgroundColor: null, //绘制图形区域的背景颜色
plotBorderWidth: null, //边框颜色
plotShadow: true, //绘图区投影
width: params.width || 200, //
height: params.height || 200, //
margin: [0, 0, 0, 0],
reflow: false,//自动缩放
//animation:false
},
title: {
text: '饼图'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
credits: {//去掉图标
enabled: false
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
size:params.size || 100,//pie size
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
format: '<b>{point.name}</b>: <br>{point.percentage:.1f} %',
distance: -5
},
}
},
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]
]
}]
}); $('#lineChart').highcharts({
chart: {
type: 'spline',
width:200,//
height:200,//
animation: Highcharts.svg, // don't animate in old IE
marginRight: 10,
events: {
load: function() { }
}
}, credits: {
enabled: false
},
plotOptions: {
line: {
animation: false
},
series: {
animation: false
}
},
title: {
text: '线性图'
},
xAxis: {
type: 'datetime',
// dateTimeLabelFormats: { // don't display the dummy year
// second: '%H:%M:%S'
},
yAxis: {
title: {
text: '单位(Mbit/s)'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}] , min: 0,
allowDecimals:false },
series: [{
name:'网站流量',
data:[ [ 1453443752602, 30.2 ], [ 1453443753602, 47.9 ], [ 1453443754602, 38.2 ], [ 1453443755602, 59.8 ], [ 1453443756602, 43.3 ], [ 1453443757602, 57.1 ], [ 1453443758602, 52.2 ], [ 1453443759602, 48 ] ]
}] }); $('.barChart').highcharts({ chart: {
type: 'column',
height:200,
width:params.width || 250,
},
credits: {
enabled: false
},
legend:{
enabled: false },
title: {
text: params.title
},
subtitle: {
text: ''
},
xAxis: {
categories:params.categoriesArr|| ['当前','周','月']
},
yAxis: {
min: 0,
title: {
text: params.yUnit ||'(个)'
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y:.1f} '+'(个)'+'</b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0,
pointWidth:params.pointWidth||30 //宽度
}
},
series: params.series||
[{
name: ['数量'],
data: [213,321,112]
} ] }); });
</script>
</head>
<body> <div class="pieChart"></div>
<div id="lineChart"></div>
<div class="barChart"></div>
</body> </html>
运行就可以看到常用的饼图,条形图柱状图已经顺利生成了。
我们可以看到在highchart中,是利用jquery选择器去选择相应的元素进行绘图,所以我们可以灵活的使用id,class等选择器为我们绑定图表。
三.常用属性介绍
成功了运行上面的图表生成代码,那么下面我来为大家介绍一下其中常用的属性,以满足一般开发要求。
1.chart 顾名思义图表属性,通过改变它去改变图表的样式等
type: 'spline', //图表类型
plotBackgroundColor: null, //绘制图形区域的背景颜色
plotBorderWidth: null, //边框颜色
plotShadow: true, //绘图区投影
width: params.width || 200, //整个绘图区域宽度
height: params.height || 200, //这个绘图去高度
margin: [0, 0, 0, 0],//绘图区域margin
reflow: false,//自动缩放
events: //图表事件监听器
2.title
text: params.title// title的文字信息
3.credits
enabled: false// 不展示logo
4.plotOptions 对应的图形样式设定
pie: {//饼图
allowPointSelect: true,
cursor: 'pointer',
size:params.size || 100,//饼图中,饼图自身半径
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
format: '<b>{point.name}</b>: <br>{point.percentage:.1f} %',
distance: -5 //用于设置饼图上描述文字的位置
},
}
plotOptions: {// 折线图
line: {
animation: false
},
series: {
animation: false
}
},
plotOptions: {//柱形图
column: {
pointPadding: 0.2,
borderWidth: 0,
pointWidth:params.pointWidth||30 //宽度
}
}
5.series 图表数据,注意尽量用number类型而不是string,因为除了饼图外,string值不被识别
四.参考
Highcharts.js -纯javasctipt图表库初体验的更多相关文章
- highCharts入门-强大的图表库插件
简介 Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表,并且免费提供给个人学习.个人网站和非商业 ...
- ECharts-基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表
ECharts http://ecomfe.github.com/echarts 基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算 ...
- python--爬虫入门(七)urllib库初体验以及中文编码问题的探讨
python系列均基于python3.4环境 ---------@_@? --------------------------------------------------------------- ...
- urllib库初体验以及中文编码问题的探讨
提出问题:如何简单抓取一个网页的源码 解决方法:利用urllib库,抓取一个网页的源代码 ------------------------------------------------------- ...
- Bower管理依赖库初体验
比如一开始我用了jquery-1.10.2.min.js,后来要用bootstrap,但bootstrap依赖的确实2.0.3版本的jquery,那又要下载一个去替换原来的,这样的事情发生多了就会觉得 ...
- Knockout.js初体验
前不久在网上看到一个轻量级MVVM js类库叫Knockout.js,觉得很好奇,搜了一下Knockout.js相关资料,也初体验了一下,顿时感觉这个类库的设计很有意思.接下来就搞清楚什么是Knock ...
- ECharts JavaScript图表库 ECharts
ECharts开源来自百度商业前端数据可视化团队,基于html5 Canvas,是一个纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算.数据视图.值 ...
- 基于html5 Canvas图表库 : ECharts
ECharts开源来自百度商业前端数据可视化团队,基于html5 Canvas,是一个纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算.数据视图.值 ...
- 开源的数据可视化JavaScript图表库:ECharts
ECharts (Enterprise Charts 商业产品图表库)是基于HTML5 Canvas的一个纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽 ...
随机推荐
- 最短路径算法(I)
弗洛伊德算法(Floyed-Warshall) 适用范围及时间复杂度 该算法的时间复杂度为O(N^3),适用于出现负边权的情况. 可以求取最短路径或判断路径是否连通.可用于求最小环,比较两点之间的大小 ...
- Python爬虫入门(6):Cookie的使用
为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓 ...
- scrum立会报告+燃尽图(第二周第五次)
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2250 一.小组介绍 组名:杨老师粉丝群 组长:乔静玉 组员:吴奕瑶.公冶 ...
- Python:元组操作总结
Python的元组和列表类似,不同之处在于元组中的元素不能修改(因此元组又称为只读列表),且元组使用小括号而列表使用中括号,如下: tup1=('physics','chemistry',1997,2 ...
- 机器学习笔记(4)Logistic回归
模型介绍 对于分类问题,其得到的结果值是离散的,所以通常情况下,不适合使用线性回归方法进行模拟. 所以提出Logistic回归模型. 其假设函数如下: \[ h_θ(x)=g(θ^Tx) \] 函数g ...
- Beta版冲刺前准备
[团队概要] 团队项目名:小葵日记 团队名:日不落战队 队员及角色: 队员 角色 备注 安琪 前端工程师 队长 佳莹 前端工程师 智慧 后端工程师 章鹏 后端工程师 语恳 UI设计师 炜坤 前端工程师 ...
- HDU 5170 GTY's math problem 水题
题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5170 bc(中文):http://bestcoder.hdu.edu.cn/contests ...
- MySQL误操作后如何快速回滚(转)
本文转自http://www.cnblogs.com/dfcao/p/6147970.html#undefined 感谢作者 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,My ...
- PHP中继承
继承 基本概念 将一个类A中的特性信息,传递到另一个类B中,此时就称为: B继承A A派生出B: 基本语法: 几个基本概念 继承:一个类从另一个已有的类获得其特性,称为继承. 派生:从一个已有的类产生 ...
- Hibernate 中 load() 和 get() 的区别
get 和 load 方式都是是根据 id 取得一个记录.下边详细说一下 get 和 load 的不同,因为有些时候为了对比也会把 find 加进来. 1.从返回结果上对比: load 方式检索不到的 ...