创建看起来很漂亮的图表可能会有点痛苦。大多数情况下,网页设计师或开发人员使用图形来使用Photoshop或Illustrator显示数据,这可能需要很长时间才能完成。
使用Chart.js可视化数据 - 教程
Chart.js库是一个伟大的在线JavaScript库,它使用HTML5 canvas元素来绘制图形和图表,并附带文档。
要查看Chart.js的实际运行情况,我们将使用Web编程语言构建以下图表作为我们的标签及其虚构数据:
- 折线图
- 条形图
- 雷达图
- 极地图
- 饼形图
- 甜甜圈图
完成本教程所需的资源:
- Chart.js图书馆
- 时间和耐心
查看演示
入门
首先,我们需要将解压缩文件夹中的chart.min.js复制到我们的js文件夹或首选目录中。
配置
接下来我们需要做的是创建一个新的HTML文件并添加以下代码。这将包括HTML5 doctype,然后是CSS文件目录,后跟Chart.js库文件目录。
<!DOCTYPE html>
绘制折线图
要绘制折线图,我们需要首先在HTML文件的body部分创建一个HTML5 canvas元素。
<canvas id="canvas" height="450" width="600"></canvas>
接下来,我们需要创建一个初始化图表类的脚本(在本例中,我使用了myLineChart),然后检索我们想要绘制图表的画布的2D上下文。在结束正文标记之前复制代码。
var myLineChart = new Chart(document.getElementById("canvas").getContext("2d")).Line(LineChart, {scaleFontSize : 13, scaleFontColor : "#ffa45e"});
注意:您还可以使用“图表”选项在每个图表上添加所需的某些样式,例如文本颜色和字体大小。
在上面的示例中,我使用scaleFontSize和scaleFontColor来更改数据的字体大小和文本颜色。您可以查看Chart.js文档以查看每个图表的更多可用图表选项。
对于我们的数据结构,我们将初始化一个对象(对于此示例,我使用的是LineChart),该对象包含折线图的所有标签。折线图的数据将分解为一组数据集。您应该定义每个数据集的值,例如填充颜色,笔触颜色,点颜色,点笔划颜色和数据本身。
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: [10, 20, 30, 40, 50]
}, {
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]
}]
}
您将得到类似的结果,如下图所示:
绘制条形图
要绘制条形图,我们需要首先在HTML文件的body部分创建一个HTML5 canvas元素。
<canvas id =“canvas”height =“450”width =“600”> </ canvas>
接下来,我们将创建一个代表条形图类的脚本(在本例中,我使用了myBarChart),然后检索画布的2D上下文。在结束正文标记之前复制代码。
var myBarChart = new Chart(document.getElementById(“canvas”)。getContext(“2d”))。Bar(BarChart,{scaleFontSize:13,scaleFontColor:“#ffa45e”});
条形图与折线图的数据结构几乎相同。让我们使用一个对象(对于这个例子,我使用BarChart)来保持条形图的标签和值。如您所见,我们显示的数据与上一个折线图示例相同。
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]
}]
}
您将得到类似的结果,如下图所示:
绘制雷达图
接下来,让我们绘制雷达图。所以,首先在我们的HTML文件上放置HTML5 canvas元素代码。
<canvas id =“canvas”height =“450”width =“610”> </ canvas>
然后,我们将创建一个初始化雷达图表类的脚本(在本例中,我使用了myRadarChart),然后检索画布的2D上下文。将代码放在结束体标记之前。
var myRadarChart = new Chart(document.getElementById(“canvas”)。getContext(“2d”))。Radar(RadarChart,{pointLabelFontSize:13,pointLabelFontColor:“#ffa45e”});
对于雷达图,我们需要为图表的每个点显示一个标签。这将包括一个字符串数组,然后在图表周围显示它。为此,让我们再次实例化一个对象(对于这个例子,我使用RadarChart)作为雷达图的标签和值的容器。
var RadarChart = {
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: [10, 20, 30, 40, 50]
}, {
fillColor: "rgba(252,147,65,0.5)",
strokeColor: "rgba(255,255,255,1)",
pointColor: "rgba(173,173,173,1)",
pointStrokeColor: "#fff",
data: [28, 48, 40, 19, 96]
}]
}
您将得到类似的结果,如下图所示:
绘制极地面积图
要绘制Polar Area图表,我们需要在HTML文件中使用HTML5 canvas元素代码。
<canvas id =“canvas”height =“400”width =“610”> </ canvas>
接下来,让我们为对象创建一个脚本(在本例中,我使用了myPolarAreaChart),然后检索画布的2D上下文。您可以在结束正文标记之前复制下面的代码。
var myPolarAreaChart = new Chart(document.getElementById(“canvas”)。getContext(“2d”))。PolarArea(PolarChart,{scaleFontSize:13,scaleFontColor:“#ffa45e”});
极区图与饼图几乎相同; 但是,每个段具有相同的角度,并且半径根据值而不同。
让我们首先实例化对象(例如,我使用PolarChart)来保存标签和值,从而创建Polar区域图的数据结构。value属性应该是数字,而color属性应该是字符串。
var PolarChart = [{
value: Math.random(),
color: "#fac59c"
}, {
value: Math.random(),
color: "#c9fadd"
}, {
value: Math.random(),
color: "#a2efff"
}, {
value: Math.random(),
color: "#e6d1ff"
}, {
value: Math.random(),
color: "#ffd1f9"
}, {
value: Math.random(),
color: "#ffd1d1"
}];
您将得到类似的结果,如下图所示:
绘制饼图
接下来,让我们绘制一个饼图。首先,我们需要HTML5 canvas元素。
<canvas id =“canvas”height =“450”width =“610”> </ canvas>
然后,让我们创建我们的对象(在这个例子中,我使用myPieChart),然后检索画布的2D上下文。在关闭正文标记之前复制下面的代码。
var myPieChart = new Chart(document.getElementById(“canvas”)。getContext(“2d”))。Pie(PieChart);
对于饼图,我们需要传入一个具有值(即数字)和颜色属性的对象数组。所以,让我们这样做。复制下面的代码。
var PieChart = [{
value: 40,
color: "#fcc79e"
}, {
value: 30,
color: "#beefd2"
}, {
value: 90,
color: "#ffddfb"
}];
您将得到类似的结果,如下图所示:
绘制圆环图
最后,我们将绘制一个圆环图。我们需要首先在HTML文件的body部分创建一个HTML5 canvas元素。
<canvas id =“canvas”height =“450”width =“610”> </ canvas>
接下来,我们需要获取画布的上下文并实例化图表。
var myDoughnutChart = new Chart(document.getElementById(“canvas”)。getContext(“2d”))。Donut(DoughnutChart);
最后,让我们创建数据。对于圆环图,就像饼图一样,我们需要传递一个具有值和颜色属性的对象数组。
var DoughnutChart = [{
value: 60,
color: "#fcc79e"
}, {
value: 30,
color: "#beefd2"
}, {
value: 50,
color: "#ffddfb"
}, {
value: 120,
color: "#cdecff"
}, {
value: 90,
color: "#fff5bc"
}];
您将得到类似的结果,如下图所示:
最后的话
Chart.js是一个很棒的JavaScript库,可以用你创造性的方式创建图表。本教程介绍了如何使用这个很酷的库的步骤。但是,使用Chart.js有一些缺点,例如,它没有工具提示,也没有交互性。
据说这个JavaScript库还有很长的路要走,最终会被不同的开发人员改进。
玩它并让我知道如果你有一个演示,你使用图表选项想出一个很酷的设计。