Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Chart.js

Chart.js 是一个免费的 JavaScript 库,用于制作基于 HTML 的图表。它是 JavaScript 最简单的可视化库之一,并带有以下内置图表类型

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

如何使用 Chart.js?

Chart.js 易于使用。

首先,添加一个指向提供 CDN(内容交付网络)的链接

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

然后,将 <canvas> 添加到您要绘制图表的区域

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

画布元素必须具有唯一的 ID。

就这样!

典型的散点图语法

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

典型的折线图语法

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

典型的条形图语法

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

散点图

房价与面积

源代码

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 设置为零,则可以散点图折线图

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);

new Chart("myChart", {
  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);

自己试试 »


条形图

源代码

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

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

自己试试 »

仅颜色一个条形

var barColors = ["blue"];

自己试试 »

所有条形相同颜色

var barColors ="red";

自己试试 »

颜色阴影

var 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)",
];

自己试试 »

水平条形

只需将类型从 "bar" 更改为 "horizontalBar"

type: "horizontalBar",

自己试试 »


饼图

示例

new Chart("myChart", {
  type: "pie",
  data: {
    labels: xValues,
    datasets: [{
      backgroundColor: barColors,
      data: yValues
    }]
  },
  options: {
    title: {
      display: true,
      text: "世界葡萄酒产量"
    }
  }
});

自己试试 »


环形图

只需将类型从 "pie" 更改为 "doughnut"

type: "doughnut";

自己试试 »


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.