分享一个开源的JavaScript统计图表库,40行代码实现专业统计图表

提升程序员工作效率的工具/技巧推荐系列

这可能是史上最简单易用的开源统计图表绘制库了。柱状图,饼状图,点状图等等您能想到的类型全部支持。

这个开源库的官网:http://www.chartjs.org/

直接看如何只用40行代码就实现专业的统计图表。代码如下:

<html>

<canvas id="myChart" width="300px" height="300px"></canvas>

<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.js"></script>

<script>

var ctx = document.getElementById("myChart").getContext(‘2d‘);

var myChart = new Chart(ctx, {

type: ‘line‘,

data: {

labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],

datasets: [{

label: ‘# of Votes‘,

data: [12, 14, 3, 5, 2, 3],

backgroundColor: [

‘rgba(255, 99, 132, 0.2)‘, ‘rgba(54, 162, 235, 0.2)‘, ‘rgba(255, 206, 86, 0.2)‘, ‘rgba(75, 192, 192, 0.2)‘,

‘rgba(153, 102, 255, 0.2)‘, ‘rgba(255, 159, 64, 0.2)‘

],

borderColor: [

‘rgba(255,99,132,1)‘, ‘rgba(54, 162, 235, 1)‘, ‘rgba(255, 206, 86, 1)‘, ‘rgba(75, 192, 192, 1)‘,

‘rgba(153, 102, 255, 1)‘, ‘rgba(255, 159, 64, 1)‘

],

borderWidth: 1

}]

},

options: {

responsive: false,

scales: {

yAxes: [{

ticks: {

beginAtZero:true

}

}]

}

}

});

</script>

</html>

效果如下:

简单解释下代码。

  • 第二行: 这个canvas结点作为最后绘制出的图表显示的一个容器,也就是说,最后画出来的统计图表就显示在这个canvas结点里。大家可以根据需要定义图标的宽(width)和高(height)。
  • 第三行:声明了这个开源库的CDN地址。
  • 第八行:声明要显示的统计图的类型。同一套数据是可以用不同的统计图类型显示出来的,可选的有bar, bubble, doughnut, horizontalBar, line, pie, polarArea, radar, scatter这几种。本文后半部分提供了每一种图的效果。
  • 第十行:labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"]。定义了统计图表的一个维度。如果是线状图,柱状图这些类型,则labels定义的维度作为统计同的横坐标(也就是X坐标)。
  • 第十三行:data: [12, 14, 3, 5, 2, 3] 定义了统计图表的另一个维度。如果是线状图,柱状图这些类型,则labels定义的维度作为统计图的纵坐标(也就是Y坐标)。如果是饼状图,data定义的这些值是描述每个维度占整个饼(一个完整圆)的百分比。
  • 第二十六行:responsive: false,意思是使用第二行canvas指定的宽和高来绘制统计图表。如果response置为true,意思是响应式布局,会以全屏的方式显示图表。

这40行代码就讲解完了,对于应用程序开发人员来说,无需去研究里面的绘图细节,甚至连用户把鼠标放到图标上自动弹出tooltip这些细节都自动由这个库实现了,使用起来非常方便。

下面是把第八行代码图标的类型属性type传入各种支持的类型后的渲染结果,方便大家查阅:

type: line - 线状图

doughnut - 圈图

horizontalBar - 水平柱图

pie - 饼状图

radar - 雷达图

polarArea

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

原文地址:https://www.cnblogs.com/sap-jerry/p/9819240.html

时间: 2024-11-05 16:55:26

分享一个开源的JavaScript统计图表库,40行代码实现专业统计图表的相关文章

分享一个嵌入式httpd服务器开发库 - boahttpd library

http://sourceforge.net/projects/boahttpd/ 一个C接口的开发库,适用于 windows/linux/或其他嵌入式平台,支持CGI扩展,支持多线程.采用面向对象开发,一个应用里可以同时开多个http server,只要端口不同就互不影响. 目前只写了英文帮助,大家凑合看吧. boahttpd Library Development Manual Last Modified: 2014-07-08 1.     Introduction The library

SharpZipLib 是一个开源的 .NET 压缩库

SharpZipLib 是一个开源的 .NET 压缩库,支持 zip 以及存储和 deflate 压缩模式,支持一下 .NET 版本: .NET 1.1 .NET 2.0 .NET 3.5 .NET 4.0 .NET Compact Framework 1.0 .NET Compact Framework 2.0 You can download the Assemblies?here

雅虎宣布停止开发开源的JavaScript工具库YUI

雅虎官方博客宣布终止开发开源的JavaScript工具库Yahoo User Interface library (YUI). 雅虎开发者解释说,行业趋势发生了改变.过去几年,Web平台经历了激烈变革,相比以前如今的JavaScript几乎是无处不在.Node.JS的出现 允许JavaScript在服务器端使用, 以及新的包管理器如npm,构建工具如Grunt,应用程序框架,测试工具等的出现,使得YUI之类的大型JavaScript工具库不再像以前那样受到 社区的关注. 今天大多数开发者将大型J

40行代码的人脸识别实践

很多人都认为人脸识别是一项非常难以实现的工作,看到名字就害怕,然后心怀忐忑到网上一搜,看到网上N页的教程立马就放弃了.这些人里包括曾经的我自己.其实如果如果你不是非要深究其中的原理,只是要实现这一工作的话,人脸识别也没那么难.今天我们就来看看如何在40行代码以内简单地实现人脸识别. 一点区分 对于大部分人来说,区分人脸检测和人脸识别完全不是问题.但是网上有很多教程有无无意地把人脸检测说成是人脸识别,误导群众,造成一些人认为二者是相同的.其实,人脸检测解决的问题是确定一张图上有木有人脸,而人脸识别

40行代码的人脸识别实践【转】

转自:http://blog.csdn.net/xingchenbingbuyu/article/details/68482838?ref=myrecommend 版权声明:本文为博主原创文章,转载请联系作者取得授权. 目录(?)[+] 40行代码的人脸识别实践 40行代码的人脸识别实践 前言 一点区分 所用工具 Dlib 人脸识别 前期准备 识别流程 代码 运行结果 前言 很多人都认为人脸识别是一项非常难以实现的工作,看到名字就害怕,然后心怀忐忑到网上一搜,看到网上N页的教程立马就放弃了.这些

史上最牛逼的javascript俄罗斯方块,63行代码搞定啊

<!doctype html><html><head></head><body> <div id="box" style="width:252px;font:25px/25px 宋体;background:#000;color:#9f9;border:#999 20px ridge;text-shadow:2px 3px 1px #0f0;"></div> <script>

Spark技术内幕:一个图搞定Spark到底有多少行代码

Spark1.0.0发布一个多月了,那么它有多少行代码(Line of Code, LOC)? 注:代码统计未包含测试,sample. Spark技术内幕:一个图搞定Spark到底有多少行代码

分享一个开源的流程图绘制软件--Diagram Designer

最近在写专利文件,在制作说明书附图时想到自己还只会用wps进行简单的绘制,于是想学习下,填补下这方面的短板.这两天查到了DiagramDesigner这个小工具,派上了大用场.用它写完了一个发明专利,还给zigbee产品设计了一个测试架. 对比了几个小工具.首先是产品经理们爱用的VISIO,功能强大,但是收费.其次有一个开源的特别简单的软件EVE,http://www.goosee.com/,试用了下,对于流程图应用来说功能还是太简单.于是最终选择了DiagramDesigner,如果你像我一样

jquery轮播图详解,40行代码即可简单解决。

我在两个月以前没有接触过html,css,jquery,javascript.今天我却在这里分享一篇技术贴,可能在技术大牛面前我的文章漏洞百出,也请斧正. 可以看出来,无论是div+css布局还是jquery其实真的很简单,只要不停的练习就会有很大进步.每天150行代码,会帮助我们走的更远.对于编程对于脚本语言,我们这样的学生娃没有和比人一样初中,高中就开始研究,要想走在时代的前沿需要怎样的努力和毅力,是我们一类人需要思考的方向. 下面解释下焦点图,焦点图使用范围非常广,banner和anima