有你在真好 的个人博客
整理自己学习Chart.js的过程供大家参考
阅读:2251 添加日期:2021/3/27 23:23:54 原文链接:https://www.toutiao.com/item/6462976395034231309/

Chart.js

是一个简单、面向对象、为设计者和开发者准备的图表绘制工具库。

帮你用不同的方式让你的数据变得可视化。每种类型的图表都有动画效果,并且看上去非常棒,即便是在retina屏幕上。

基于HTML5 canvas技术,支持所有现代浏览器,并且针对IE7/8提供了降级替代方案。

不依赖任何外部工具库,轻量级(压缩之后仅有4.5k),并且提供了加载外部参数的方法。

下面是Chart.js的应用示例:

1引入Chart.js文件

首先我们需要在页面中引入Chart.js文件。此工具库在全局命名空间中定义了Chart变量

<script type="text/javascript" src="js/Chart.min.js"></script>

2 创建图表

为了创建图表,我们要实例化一个Chart对象。为了完成前面的步骤,首先需要需要传入一个绘制图表的2d context。以下是案例。

Html

<canvas id="canvas1" height="450" width="600"></canvas>

Js:

var ctx1 = new Chart(document.getElementById("canvas1").getContext("2d"));

var options = {scaleFontSize: 13, scaleFontColor: "#ffa45e"};

var myLineChart = ctx1.Line(LineChart, options);

当我们完成了在指定的canvas上实例化Chart对象之后,Chart.js会自动针对retina屏幕做缩放。

Chart对象设置完成后,我们就可以继续创建Chart.js中提供的具体类型的图表了

3 曲线图(Line chart)

简介

曲线图就是将数据标于曲线上的一种图表。

一般用于展示趋势数据,和比较两组数据集。

使用案例

整理自己学习Chart.js的过程供大家参考

数据结构

<canvas id="canvas1" height="450" width="600"></canvas>

var ctx1 = new Chart(document.getElementById("canvas1").getContext("2d"));

var options = {scaleFontSize: 13, scaleFontColor: "#ffa45e"};

// 线型图

var LineChart = {

labels: ["Ruby", "jQuery", "Java", "ASP.Net", "PHP"],

datasets: [{

fillColor: "rgba(151,249,190,0.5)",

strokeColor: "rgba(255,255,255,1)",

pointColor: "rgba(220,220,220,1)",

pointStrokeColor: "#fff",

data: [100, 200, 300, 400, 550]

}, {

fillColor: "rgba(252,147,65,0.5)",

strokeColor: "rgba(255,255,255,1)",

pointColor: "rgba(173,173,173,1)",

pointStrokeColor: "#fff",

data: [28, 68, 40, 19, 96]

}]

};

var myLineChart = ctx1.Line(LineChart, options);

4 条形图(Bar chart)

简介

条形图是将数据显示为条形图的一种方法。

它有时用来显示趋势数据,同时比较多个数据集。

使用案例

整理自己学习Chart.js的过程供大家参考

数据结构

<canvas id="canvas2" height="450" width="600"></canvas>

var ctx2 = new Chart(document.getElementById("canvas2").getContext("2d"));

var options = {scaleFontSize: 13, scaleFontColor: "#ffa45e"};

// 条形图

var BarChart = {

labels: ["Ruby", "jQuery", "Java", "ASP.Net", "PHP"],

datasets: [{

fillColor: "rgba(151,249,190,0.5)",

strokeColor: "rgba(255,255,255,1)",

data: [13, 20, 30, 40, 50]

}, {

fillColor: "rgba(252,147,65,0.5)",

strokeColor: "rgba(255,255,255,1)",

data: [28, 68, 40, 19, 96]

}]

};

var myBarChart = ctx2.Bar(BarChart, options);

5 饼图(Pie chart)

简介

饼图可能是最常用的图表。它们被划分为段,每个段的弧显示每一段数据的比例值。

他们擅长显示数据之间的关系比例。

使用案例

数据结构

整理自己学习Chart.js的过程供大家参考

<canvas id="canvas3" height="450" width="600"></canvas>

var ctx3 = new Chart(document.getElementById("canvas3").getContext("2d"));

var options = {scaleFontSize: 13, scaleFontColor: "#ffa45e"};

// 饼状图

var pieChart = [

{value: 40, color: "#fcc79c", highlight: "#AD0A56", label: "SCI"},

{value: 30, color: "#beefd2", highlight: "#AD0A56", label: "SSCI"},

{value: 90, color: "#ffddfb", highlight: "#AD0A56", label: "Others"},

];

var myPieChart = ctx3.Pie(pieChart);

6 环形图(Doughnut chart)

简介

环形图表与饼图相似,但它们有中心切割,因此形状更像油炸圈饼而不是馅饼!

他们善于展示数据之间的关系比例。

使用案例

整理自己学习Chart.js的过程供大家参考

数据结构

<canvas id="canvas4" height="450" width="600"></canvas>

var ctx4 = new Chart(document.getElementById("canvas4").getContext("2d"));

var options = {scaleFontSize: 13, scaleFontColor: "#ffa45e"};

// 环状图

var doughnutChart = [

{value: 60, color: "#fcc79e", highlight: "#AD0A56", label: "SCI"},

{value: 30, color: "#beefd2", highlight: "#AD0A56", label: "SSCI"},

{value: 50, color: "#ffddfb", highlight: "#AD0A56", label: "Others"},

{value: 120, color: "#cdecff", highlight: "#AD0A56", label: "TEST"},

{value: 90, color: "#fff5bc", highlight: "#AD0A56", label: "ADD"}

];

var myRingChart = ctx4.Doughnut(doughnutChart);

7 浏览器支持

所有现代浏览器和大部分手机浏览器都支持canvas

对于IE8及以下版本的浏览器,建议使用ExplorerCanvas。对于不支持canvas的IE会自动降级为VML格式。使用下面方法,excamvas.js可以在下面网址

http://www.bvbcode.com/cn/yk51lwhx-894917-down

<head>

<!--[if lte IE 8]>

<script src="excanvas.js"></script>

<![endif]-->

</head>

附,下面是完整的html代码:

<html>

<head>

<meta charset="utf-8">

<script type="text/javascript" src="js/Chart.min.js"></script>

</head>

<body>

<canvas id="canvas1" height="450" width="600"></canvas>

<canvas id="canvas2" height="450" width="600"></canvas>

<canvas id="canvas3" height="450" width="600"></canvas>

<canvas id="canvas4" height="450" width="600"></canvas>

<script type="text/javascript">

var ctx1 = new Chart(document.getElementById("canvas1").getContext("2d"));

var ctx2 = new Chart(document.getElementById("canvas2").getContext("2d"));

var ctx3 = new Chart(document.getElementById("canvas3").getContext("2d"));

var ctx4 = new Chart(document.getElementById("canvas4").getContext("2d"));

var options = {scaleFontSize: 13, scaleFontColor: "#ffa45e"};

// 线型图

var LineChart = {

labels: ["Ruby", "jQuery", "Java", "ASP.Net", "PHP"],

datasets: [{

fillColor: "rgba(151,249,190,0.5)",

strokeColor: "rgba(255,255,255,1)",

pointColor: "rgba(220,220,220,1)",

pointStrokeColor: "#fff",

data: [100, 200, 300, 400, 550]

}, {

fillColor: "rgba(252,147,65,0.5)",

strokeColor: "rgba(255,255,255,1)",

pointColor: "rgba(173,173,173,1)",

pointStrokeColor: "#fff",

data: [28, 68, 40, 19, 96]

}]

};

var myLineChart = ctx1.Line(LineChart, options);

// 条形图

var BarChart = {

labels: ["Ruby", "jQuery", "Java", "ASP.Net", "PHP"],

datasets: [{

fillColor: "rgba(151,249,190,0.5)",

strokeColor: "rgba(255,255,255,1)",

data: [13, 20, 30, 40, 50]

}, {

fillColor: "rgba(252,147,65,0.5)",

strokeColor: "rgba(255,255,255,1)",

data: [28, 68, 40, 19, 96]

}]

};

var myBarChart = ctx2.Bar(BarChart, options);

// 饼状图

var pieChart = [

{value: 40, color: "#fcc79c", highlight: "#AD0A56", label: "SCI"},

{value: 30, color: "#beefd2", highlight: "#AD0A56", label: "SSCI"},

{value: 90, color: "#ffddfb", highlight: "#AD0A56", label: "Others"},

];

var myPieChart = ctx3.Pie(pieChart);

// 环状图

var doughnutChart = [

{value: 60, color: "#fcc79e", highlight: "#AD0A56", label: "SCI"},

{value: 30, color: "#beefd2", highlight: "#AD0A56", label: "SSCI"},

{value: 50, color: "#ffddfb", highlight: "#AD0A56", label: "Others"},

{value: 120, color: "#cdecff", highlight: "#AD0A56", label: "TEST"},

{value: 90, color: "#fff5bc", highlight: "#AD0A56", label: "ADD"}

];

var myRingChart = ctx4.Doughnut(doughnutChart);

</script>

</body>

</html>

ICP备案号:苏ICP备14035786号-1 苏公网安备 32050502001014号