强大的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 相关文章推荐
JS 文件大小判断的实现代码
Apr 07 Javascript
防止浏览器记住用户名及密码的简单实用方法
Apr 22 Javascript
JavaScript解析URL参数示例代码
Aug 12 Javascript
BootStrap tooltip提示框使用小结
Oct 26 Javascript
EasyUI 结合JS导出Excel文件的实现方法
Nov 10 Javascript
jQuery实现 上升、下降、删除、添加一行代码
Mar 06 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
Jun 17 Javascript
详解Angular 自定义结构指令
Jun 21 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
Sep 18 Javascript
JavaScript 下载svg图片为png格式
Jun 21 Javascript
vue使用自定义指令实现拖拽
Jan 29 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
Jan 12 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
编写自己的php扩展函数
2006/10/09 PHP
用PHP和ACCESS写聊天室(八)
2006/10/09 PHP
PHP 函数语法介绍一
2009/06/14 PHP
QueryPath PHP 中的jQuery
2010/04/11 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
php实现的短网址算法分享
2014/06/20 PHP
php与flash as3 socket通信传送文件实现代码
2014/08/16 PHP
浅析php适配器模式(Adapter)
2014/11/25 PHP
js查找节点的方法小结
2015/01/13 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
利用JS实现数字增长
2016/07/28 Javascript
AngularJS入门教程之XHR和依赖注入详解
2016/08/18 Javascript
ES6新数据结构Map功能与用法示例
2017/03/31 Javascript
在axios中使用params传参的时候传入数组的方法
2018/09/25 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
python实现中文转换url编码的方法
2016/06/14 Python
教你用Python创建微信聊天机器人
2020/03/31 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
暑期培训随笔感言
2014/03/10 职场文书
安全生产承诺书
2014/03/26 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
实习推荐信格式模板
2015/03/27 职场文书
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
基于Python实现射击小游戏的制作
2022/04/06 Python
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL