导航
×
   ❮   
HTML CSS JavaScript PHP Go Sass W3C Colors ECMS

JS 教程

JS 简介 JS 如何使用 JS 输出 JS 语法 JS 语句 JS 注释 JS 变量 JS 运算符 JS 条件语句 JS 循环 JS 字符串 JS 数字 JS 函数 JS 对象 JS 日期 JS 数组 JS 类型化数组 JS 集合 JS Map 映射 JS Math JS 正则表达式 JS 数据类型 JS 错误 JS 事件 JS 编程 JS 关键字参考 JS 保留关键字参考 JS 运算符参考 JS 运算符优先级 JS UTF-8 字符 JS UTF-8 符号 JS UTF-8 表情符号 JS 版本

JS 高级教程

JS 对象 JS 函数 JS 类 JS 迭代 JS Promises JS 模块 JS HTML DOM JS Windows JS Web API JS AJAX JS JSON JS jQuery JS 图形

JS 实例

JS 实例 JS HTML DOM JS HTML 输入 JS HTML 对象 JS HTML 事件 JS Browser JS 测验

Chart.js


Chart.js是一个免费的JavaScript图表库,用于创建基于HTML的图表。它是最简单的JavaScript可视化库之一,并内置了多种图表类型:

  • 散点图
  • 折线图
  • 条形图
  • 饼图
  • 圆环图
  • 气泡图
  • 面积图
  • 雷达图
  • 混合图表

如何使用 Chart.js?

1. 添加指向提供内容分发网络 (CDN) 的链接:

<script
src="https://cdn.jsdelivr.net/npm/chart.js@4.5.0">
</script>

2.在HTML中你想绘制图表的位置添加一个<canvas> 标签:

<canvas>
id="myChart" style="width:100%;max-width:700px"
</canvas>

canvas元素必须具有唯一的id。

典型柱状图语法:

const myChart = new Chart("myChart", {
  type: "bar",
  data: {},
  options: {}
});

典型折线图语法:

const myChart = new Chart("myChart", {
  type: "line",
  data: {},
  options: {}
});

柱状图

源代码

const xValues = ["Italy", "France", "Spain", "USA", "Argentina"];
const yValues = [55, 49, 44, 24, 15];
const barColors = ["red", "green","blue","orange","brown"];

new Chart("myChart", {
  type: "bar",
  data: {
    labels: xValues,
    datasets: [{
      backgroundColor: barColors,
      data: yValues
    }]
  },
  options: {...}
});

亲自试一试 »

仅显示蓝色条形码:

const barColors = ["blue"];

亲自试一试 »

颜色色调:

const barColors = [
  "rgba(0,0,255,1.0)",
  "rgba(0,0,255,0.8)",
  "rgba(0,0,255,0.6)",
  "rgba(0,0,255,0.4)",
  "rgba(0,0,255,0.2)",
];

亲自试一试 »

水平柱状图

将索引轴设置为 y 轴:

indexAxis: 'y',

亲自试一试 »


饼图

示例

new Chart("myChart", {
  type: "pie",
  data: {
    labels: xValues,
    datasets: [{
      backgroundColor: barColors,
      data: yValues
    }]
  },
  options: {
    title: {
      display: true,
      text: "World Wide Wine Production"
    }
  }
});

亲自试一试 »


甜甜圈图表

只需将类型从"pie"改为"doughnut"即可:

type: "doughnut";

亲自试一试 »


散点图

房价与房屋面积

源代码

const xyValues = [
  {x:50, y:7},
  {x:60, y:8},
  {x:70, y:8},
  {x:80, y:9},
  {x:90, y:9},
  {x:100, y:9},
  {x:110, y:10},
  {x:120, y:11},
  {x:130, y:14},
  {x:140, y:14},
  {x:150, y:15}
];

new Chart("myChart", {
  type: "scatter",
  data: {
    datasets: [{
      pointRadius: 4,
      pointBackgroundColor: "rgba(0,0,255,1)",
      data: xyValues
    }]
  },
  options:{...}
});

亲自试一试 »


折线图

房价与房屋面积

源代码

const xValues = [50,60,70,80,90,100,110,120,130,140,150];
const yValues = [7,8,8,9,9,9,10,11,14,14,15];

new Chart("myChart", {
  type: "line",
  data: {
    labels: xValues,
    datasets: [{
      backgroundColor:"rgba(0,0,255,1.0)",
      borderColor: "rgba(0,0,255,0.1)",
      data: yValues
    }]
  },
  options:{...}
});

亲自试一试 »

如果将边框颜色设置为零,则可以绘制散点图折线图:

borderColor: "rgba(0,0,0,0)",

亲自试一试 »


多行

源代码

const xValues = [100,200,300,400,500,600,700,800,900,1000];

new Chart("myChart", {
  type: "line",
  data: {
    labels: xValues,
    datasets: [{
      data: [860,1140,1060,1060,1070,1110,1330,2210,7830,2478],
      borderColor: "red",
      fill: false
    },{
      data: [1600,1700,1700,1900,2000,2700,4000,5000,6000,7000],
      borderColor: "green",
      fill: false
    },{
      data: [300,700,2000,5000,6000,4000,2000,1000,200,100],
      borderColor: "blue",
      fill: false
    }]
  },
  options: {
    legend: {display: false}
  }
});

亲自试一试 »


线性图

源代码

const xValues = [];
const yValues = [];
generateData("x * 2 + 7", 0, 10, 0.5);

const ctx = document.getElementById('myChart');

new Chart(ctx, {
  type: "line",
  data: {
    labels: xValues,
    datasets: [{
      fill: false,
      pointRadius: 1,
      borderColor: "rgba(255,0,0,0.5)",
      data: yValues
    }]
  },
  options: {...}
});

function generateData(value, i1, i2, step = 1) {
  for (let x = i1; x<= i2; x += step) {
    yValues.push(eval(value));
    xValues.push(x);
  }
}

亲自试一试 »


函数图

与线性图相同。只需更改 generateData 参数即可:

generateData("Math.sin(x)", 0, 10, 0.5);

亲自试一试 »


Copyright ©2020-2026 freew3c.com All Rights Reserved 提供的内容仅用于学习和测试,不保证内容的正确性。