强大的JavaScript响应式图表Chartist.js的使用


Posted in Javascript onSeptember 13, 2017

Chartist.js是一个非常简单而且实用的JavaScript前端图表生成器,它支持SVG格式,图表数据转换十分灵活,同时也支持多种图表展现形式,不失为一款前端开发者的开发利器。

Chartist.js的特点

  • 配置十分简单,可以很方便地转换各种图表数据格式。
  • CSS和JavaScript分离,因此代码比较简洁,使用就相对方便。
  • 使用SVG格式,因此Chartist.js可以很灵活的在Web页面上应用。
  • 响应式图表,支持不同的浏览器尺寸和分辨率。
  • 支持自定义 SASS 架构。

强大的JavaScript响应式图表Chartist.js的使用

Chartist.js的使用方法

首先你需要在其官方网站中下载JS包和CSS包,并且在页面中引用它们:

<link rel="stylesheet" href="bower_components/chartist/dist/chartist.min.css" rel="external nofollow" >
<script src="bower_components/chartist/dist/chartist.min.js">

下面我们对一些常用的图表类型做一个简单的介绍。

带Tooltip提示的线形图

效果图:

强大的JavaScript响应式图表Chartist.js的使用

JavaScript代码:

new Chartist.Line('.ct-chart', {
 labels: ['1', '2', '3', '4', '5', '6'],
 series: [
  {
   name: 'Fibonacci sequence',
   data: [1, 2, 3, 5, 8, 13]
  },
  {
   name: 'Golden section',
   data: [1, 1.618, 2.618, 4.236, 6.854, 11.09]
  }
 ]
});

var easeOutQuad = function (x, t, b, c, d) {
 return -c * (t /= d) * (t - 2) + b;
};

var $chart = $('.ct-chart');

var $toolTip = $chart
 .append('<div class="tooltip"></div>')
 .find('.tooltip')
 .hide();

$chart.on('mouseenter', '.ct-point', function() {
 var $point = $(this),
  value = $point.attr('ct:value'),
  seriesName = $point.parent().attr('ct:series-name');

 $point.animate({'stroke-width': '50px'}, 300, easeOutQuad);
 $toolTip.html(seriesName + '<br>' + value).show();
});

$chart.on('mouseleave', '.ct-point', function() {
 var $point = $(this);

 $point.animate({'stroke-width': '20px'}, 300, easeOutQuad);
 $toolTip.hide();
});

$chart.on('mousemove', function(event) {
 $toolTip.css({
  left: (event.offsetX || event.originalEvent.layerX) - $toolTip.width() / 2 - 10,
  top: (event.offsetY || event.originalEvent.layerY) - $toolTip.height() - 40
 });
});

多维度的柱形图

效果图:

强大的JavaScript响应式图表Chartist.js的使用

JavaScript代码:

new Chartist.Bar('.ct-chart', {
 labels: ['First quarter of the year', 'Second quarter of the year', 'Third quarter of the year', 'Fourth quarter of the year'],
 series: [
  [60000, 40000, 80000, 70000],
  [40000, 30000, 70000, 65000],
  [8000, 3000, 10000, 6000]
 ]
}, {
 seriesBarDistance: 10,
 axisX: {
  offset: 60
 },
 axisY: {
  offset: 80,
  labelInterpolationFnc: function(value) {
   return value + ' CHF'
  },
  scaleMinSpace: 15
 }
});

简单的饼图

效果图:

 强大的JavaScript响应式图表Chartist.js的使用

JavaScript代码:

var data = {
 labels: ['Bananas', 'Apples', 'Grapes'],
 series: [20, 15, 40]
};

var options = {
 labelInterpolationFnc: function(value) {
  return value[0]
 }
};

var responsiveOptions = [
 ['screen and (min-width: 640px)', {
  chartPadding: 30,
  labelOffset: 100,
  labelDirection: 'explode',
  labelInterpolationFnc: function(value) {
   return value;
  }
 }],
 ['screen and (min-width: 1024px)', {
  labelOffset: 80,
  chartPadding: 20
 }]
];

new Chartist.Pie('.ct-chart', data, options, responsiveOptions);

更多关于Chartist.js的用法,可以前往其官方网站进行查阅,包括详细地API。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery+css实现百度百科的页面导航效果
Dec 16 Javascript
jQuery中:reset选择器用法实例
Jan 04 Javascript
JQuery基础语法小结
Feb 27 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
Sep 12 Javascript
微信小程序 picker 组件详解及简单实例
Jan 10 Javascript
vue.js加载新的内容(实例代码)
Jun 01 Javascript
Vue.js 踩坑记之双向绑定
May 03 Javascript
微信小程序实现图片上传功能
May 28 Javascript
JS实现快递单打印功能【推荐】
Jun 21 Javascript
Vue高版本中一些新特性的使用详解
Sep 25 Javascript
小程序和web画三角形实现解析
Sep 02 Javascript
ES6学习教程之Promise用法详解
Nov 22 Javascript
JS库之Waypoints的用法详解
Sep 13 #Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
Sep 13 #Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
Sep 13 #Javascript
基于vue的短信验证码倒计时demo
Sep 13 #Javascript
BootStrap数据表格实例代码
Sep 13 #Javascript
使用Fullpage插件快速开发整屏翻页的页面
Sep 13 #Javascript
Angular CLI 安装和使用教程
Sep 13 #Javascript
You might like
长波知识介绍
2021/03/01 无线电
php堆排序(heapsort)练习
2013/11/13 PHP
php数据库备份还原类分享
2014/03/20 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
PHP解决中文乱码
2017/04/28 PHP
详解php实现页面静态化原理
2017/06/21 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
node.js中的fs.rename方法使用说明
2014/12/16 Javascript
浅析JavaScript事件和方法
2015/02/28 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
jQuery实现伸展与合拢panel的方法
2015/04/30 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
2017/01/04 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
2019/06/17 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
jquery实现点击左右按钮切换图片
2021/01/27 jQuery
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
[35:29]Secret vs VG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
Python微信库:itchat的用法详解
2017/08/14 Python
Python 将pdf转成图片的方法
2018/04/23 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
使用html2canvas实现浏览器截图的示例代码
2018/01/26 HTML / CSS
云冈石窟导游词
2015/02/04 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
2016年五一促销广告语
2016/01/28 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书