人们通常不希望浏览大量以文本或表格形式呈现给他们的数据。 大多数情况下,这是因为它很无聊,但更重要的是,处理原始数字要困难一些。

例如,这是世界上人口最多的十个国家的表格:

国名 人口
中国 1,379,302,771
印度 1,281,935,911
美国 326,625,791
印度尼西亚 260,580,739
巴西 207,353,391
巴基斯坦 204,924,861
奈及利亚 190,632,261
孟加拉国 157,826,578
俄国 142,257,519
日本 126,451,398

在此表中只有10个国家/地区,您和其他读者仍然很有可能会完全跳过该表。 通常,人们只会看他们感兴趣的一两个国家。 如果以条形图的形式提供相同的数据,那么某个人只需花费很少的时间就能大致了解这些国家的人口。

此外,找出趋势或事实将容易得多,例如,仅通过查看图表中的条形图,美国人口就将是孟加拉国的两倍,而中国的人口是俄罗斯的十倍左右。

可以用来创建各种图表的流行库是Chart.js 。 在本系列中,您将学习该库的所有重要方面。 它可用于在HTML5 Canvas上创建精美的响应式图表。

该库使您可以轻松混合不同的图表类型并按日期时间,对数或自定义比例绘制数据。 该库还提供了开箱即用的动画,可在更改数据或更新颜色时应用这些动画。

让我们开始安装,然后继续配置选项和其他方面。

安装及使用

您可以从GitHub下载Chart.js的最新版本,也可以使用CDN链接将其包含在您的项目中。 您还可以在以下命令的帮助下,使用npmbower安装该库:

npm install chart.js --save
bower install chart.js --save

该库有两个不同的版本。 名为Chart.jsChart.min.js的普通版本带有Chart.js库和颜色解析器。 如果要使用此版本的库并决定在图表中使用时间轴,则在使用Chart.js之前必须单独包含Moment.js库。

捆绑版本(标识为Chart.bundle.jsChart.bundle.min.js )已经包含Moment.js 。 这样,您将不需要包括两个单独的文件。 需要记住的一件事是,如果您已经在项目中包含Moment.js,则不要使用此版本。 这可能会导致版本问题。

一旦确定了要使用的库版本,就可以将其包含在项目中并开始创建出色的图表。

<script src="path/to/Chart.min.js"></script><script>var barChart = new Chart({...})
</script>

创建图表

让我们用条形图表示引言中显示的人口表。 y轴将用于绘制人口图,x轴将用于绘制国家图。 我们首先创建一个ID为popChart的画布。

<canvas id="popChart" width="600" height="400"></canvas>

宽度和高度用于确定图表的尺寸。 创建响应式图表时,图表的纵横比由画布的宽度和高度确定。

接下来,您需要实例化Chart类。 这可以通过传递要在其上绘制图表的节点,jQuery实例或画布的2d上下文来完成。

var popCanvas = $("#popChart");
var popCanvas = document.getElementById("popChart");
var popCanvas = document.getElementById("popChart").getContext("2d");

现在唯一要做的就是将所有参数传递给构造函数:

var barChart = new Chart(popCanvas, {type: 'bar',data: {labels: ["China", "India", "United States", "Indonesia", "Brazil", "Pakistan", "Nigeria", "Bangladesh", "Russia", "Japan"],datasets: [{label: 'Population',data: [1379302771, 1281935911, 326625791, 260580739, 207353391, 204924861, 190632261, 157826578, 142257519, 126451398],backgroundColor: ['rgba(255, 99, 132, 0.6)','rgba(54, 162, 235, 0.6)','rgba(255, 206, 86, 0.6)','rgba(75, 192, 192, 0.6)','rgba(153, 102, 255, 0.6)','rgba(255, 159, 64, 0.6)','rgba(255, 99, 132, 0.6)','rgba(54, 162, 235, 0.6)','rgba(255, 206, 86, 0.6)','rgba(75, 192, 192, 0.6)','rgba(153, 102, 255, 0.6)']}]}
});

在第二个参数中传递的对象包含Chart.js绘制图表所需的所有信息。 type键用于指定要绘制的图表的类型。 它可以具有以下任意值: linebarradarpolarAreapiedoughnutbubble 。 您将在本系列中学习所有这些图表类型。

数据键包含要绘制的实际数据。 backgroundColor键用于指定图表中不同条形的颜色。 如果未指定背景色,则使用默认值'rgba(0,0,0,0.1)'

每个图表还具有自己的特定键,可用于控制其外观。 这是上面的代码创建的图表:

在上面的演示中,您可以将鼠标悬停在栏上以查看不同国家/地区的确切人口。 还有一点需要注意的是,图表的大小不等于我们指定的尺寸,但是它的纵横比仍然相同。

如果要使图表在所有设备上具有相同的大小,则必须将responsive键的值设置为false

配置选项

Chart.js库使您可以自定义所创建图表的所有方面。 例如,您可以更改上图中的条形边框的颜色和宽度。 您还可以通过更改工具提示和图例的字体大小和颜色来修改它们。 在本节中,您将学习用于设置这些元素样式的不同键。

该库具有四个特殊的全局键,可用于更改图表中的所有字体。 这些键是defaultFontFamilydefaultFontSizedefaultFontStyledefaultFontColor 。 字体大小以像素为单位指定,不适用于radialLinear缩放点标签。 同样, defaultFontStyle不适用于工具提示的标题或页脚。

Chart.defaults.global.defaultFontFamily = "Lato";
Chart.defaults.global.defaultFontSize = 18;
Chart.defaults.global.defaultFontColor = 'blue';

下图使用上述全局字体设置。 通过这种方式更改外观可以帮助您创建与网站样式匹配的图表。

您还可以修改图表中显示的图例。 配置选项将需要传递到options.legend命名空间中。 您还可以使用Chart.defaults.global.legend为所有图表全局指定图例选项。 图例的positionposition键控制,该键可以接受以下四个值之一: topleftbottomright 。 您也可以使用display键显示或隐藏图例。

除了图例,您还可以控制图例标签的外观。 使用label键将其配置选项设置在图例配置下方。 可以使用boxWidth键指定颜色框的宽度。 如果未指定任何值,则使用默认值40。

默认情况下,字体系列,字体大小,字体颜色和字体样式值是从全局配置继承的。 但是,您可以使用fontSizefontStylefontFamilyfontColor指定自己的值。

var barChart = new Chart(popCanvas, {type: 'bar',data: data,options: {legend: {display: true,position: 'bottom',labels: {boxWidth: 80,fontColor: 'rgb(60, 180, 100)'}}}
});

您可以使用options.tooltips命名空间控制在图表上局部绘制工具提示的方式。 同样,可以使用Chart.defaults.global.tooltips全局设置工具提示的外观。 要指定是否向用户显示工具提示,可以使用已enabled键。 将其设置为false将禁用工具提示。 此项的默认值为true

您还可以使用intersect键控制工具提示的显示/隐藏行为。 设置为true (这也是此键的默认值)时,仅在鼠标指针实际与条互动时才显示工具提示。 设置为false ,将根据mode键指定的行为显示工具提示。

mode键用于确定哪个元素显示在工具提示中。 其默认值是nearest 。 这意味着当将intersect设置为false ,将显示最接近鼠标指针的条的工具提示。

就像图例一样,您还可以控制工具提示的不同基于字体的属性的值。 唯一的区别是,这一次必须分别为工具提示的标题,正文和页脚元素设置值。

例如,您可以使用bodyFontFamilybodyFontSizebodyFontStylebodyFontColor更改工具提示正文的字体属性。 工具提示的标题和页脚还具有名为titleMarginBottomfooterMarginTop其他属性。 它们可以用来在它们和工具提示的主体之间添加一些额外的空间。

同样,您可以使用xPaddingyPadding属性在工具提示的左侧/右侧和顶部/底部添加额外的填充。

您可以使用caretSize键控制工具提示箭头的大小。 可以使用backgroundColor键更改工具提示的backgroundColor

var barChart = new Chart(popCanvas, {type: 'bar',data: data,options: {tooltips: {cornerRadius: 0,caretSize: 0,xPadding: 16,yPadding: 10,backgroundColor: 'rgba(0, 150, 100, 0.9)',titleFontStyle: 'normal',titleMarginBottom: 15}}
});

caretSize设置为0时,以上选项将隐藏插入符号。这是一个有效的演示,显示了正在使用的选项。 尝试将鼠标悬停在栏上以查看自定义的工具提示。

最后的想法

本教程提供了Chart.js库的基本介绍,并向您展示了如何使用它创建条形图。 您还了解了可用于控制不同图表外观的不同配置选项。

尽管在本教程中我们仅使用条形图,但是配置选项可以应用于所有图表类型。 在下一个教程中,您将更详细地了解折线图和条形图。

JavaScript已成为在Web上工作的事实语言之一。 它并非没有学习曲线,并且有许多框架和库也让您忙碌。 如果您正在寻找其他资源来学习或在工作中使用,请查看Envato市场中可用的资源 。

如果您对本教程有任何疑问,请在评论中让我知道。

请注意,人口数据是从此人口普查信息中检索的。

翻译自: https://code.tutsplus.com/tutorials/getting-started-with-chartjs-introduction--cms-28278

Chart.js入门:简介相关推荐

  1. 图表Chart.js入门教程(附代码)包括线性、柱状、圆形、饼形图

    官网:http://www.chartjs.org/ Github:https://github.com/chartjs/Chart.js 使用方法: 1,在页面中创建一个canvas画布  < ...

  2. 图表Chart.js入门教程

    使用Chart.js来制作各种各样的图表.下面将为你全方位介绍chart.js.chart.js最与众不同之处是,它可以在HTML5 Canvas上面绘制出色的响应式图表. Chart.js允许你把不 ...

  3. 图表Chart js入门教程

    使用Chart.js来制作各种各样的图表.下面将为你全方位介绍chart.js.chart.js最与众不同之处是,它可以在HTML5 Canvas上面绘制出色的响应式图表. Chart.js允许你把不 ...

  4. Babylon.js入门简介和开发实例

    Babylon.js是一款WebGL开发框架.和Three.js类似.主要的技术区别是Three.js还试图回退兼容CSS 3D. Three.js是完全社区推动的,比Babylon.js要成熟些,而 ...

  5. chart.js 图表刷新_Chart.js的花式,响应式图表

    chart.js 图表刷新 Data is all around us. While search engines and other applications work most optimally ...

  6. chart.js绘制精美的数据化图形--入门示例

    参考:http://think.zvan.com.cn/code/js/2014/0607/247.html 这个库基于html5,在360极速浏览器和firefox中测试通过. <html&g ...

  7. 原生html js css绘制折现图,HTML5教程 Chart.js自定义提示折线图

    本篇教程探讨了HTML5教程 Chart.js自定义提示折线图,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 . < var randomScalingFactor ...

  8. Ember.js入门教程、博文汇总

    第一章 对象模型 Ember.js 入门指南--类的定义.初始化.继承 Ember.js 入门指南--类的扩展(reopen) Ember.js 入门指南--计算属性(compute properti ...

  9. express-cli入门_使用Express.js入门

    express-cli入门 by Victor Ofoegbu 由Victor Ofoegbu 使用Express.js入门 (Getting off the ground with Express. ...

最新文章

  1. EVA6400 Preferred path/mode
  2. Creating Lists
  3. 家用笔记本电脑什么牌子好_家用直饮水机什么牌子好 家用直饮水机品牌排名...
  4. 河北计算机辅助普通话试题,115-河北省计算机辅助普通话水平测试培训.pptx
  5. Java黑皮书课后题第5章:**5.38(十进制转八进制)编写程序,提示用户输入一个十进制整数,然后显示对应的八进制值。(不要是使用Java的Integer类的任何方法)
  6. TFS中的迭代(五)
  7. React-生命周期杂记 1
  8. 循环链表:魔术师发牌问题
  9. Java多线程学习总结(3)——Java线程的6种状态及切换
  10. 计算机通信基础ppt,计算机网络第2章 数据通信基础知识要点课件.ppt
  11. android 人体部位点击,用 TensorFlow Lite 在安卓系统上实时人体姿态跟踪
  12. 51单片机-STC89C52系列学习第一篇之IO口学习
  13. UE4蓝图基础——蓝图介绍及实现数据计算并输出
  14. MD5破解实验与个人的MD5暴破程序介绍
  15. html css字体特效,40款CSS+JS文字动画特效html源码
  16. Python制作古诗生成器
  17. Java编程:通过获取当前时间,判断今天星期几
  18. mybatis-plus lambda表达式学习笔记
  19. USB扩展器带扩展坞与不带扩展坞的区别
  20. 粥 淡薄之中滋味长

热门文章

  1. 工作、求职需要记住的英文缩写,offer讨论避免尴尬
  2. 欧姆龙NJ总线通信报错雷塞步进组态
  3. Domino的SMTP设置【外出】
  4. 纯CSS做一个吃豆人动画
  5. Working Practice-召集相关人员面对面的沟通是处理问题最快的方式之一
  6. 如何用CropBox实现头像裁剪并与java后台交互
  7. 可以背在身后的机器人助你一臂之力
  8. MPC多旋翼控制 - 线性MPC代码解读(mav_control_rw项目)
  9. 宽带连接连接被远程计算机终止win10,Win10宽带无法连接提示“调制解调器报告了一个错误”怎么解决?...
  10. ssh报错:no matching host key type found. Their offer: ssh-rsa