news 2026/9/3 10:26:10

Chart.js 快速上手教程:10 分钟安装并画出你的第一张 Canvas 图表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Chart.js 快速上手教程:10 分钟安装并画出你的第一张 Canvas 图表

Chart.js 快速上手教程:10 分钟安装并画出你的第一张 Canvas 图表

【免费下载链接】Chart.jsSimple HTML5 Charts using thetag项目地址: https://gitcode.com/gh_mirrors/ch/Chart.js

Chart.js 是一款轻量、零依赖的 HTML5 图表库,它使用<canvas>标签在前端页面中绘制柱状图、折线图、饼图等 8 种常用图表。本教程带你快速完成 Chart.js 安装,只需 10 分钟,你就能在自己的网页上画出第一张带图例、网格、悬浮提示的 Canvas 图表——不需要任何图表引擎经验,也不需要后端支持。

为什么选择 Chart.js?

在动手之前,先看看 Chart.js 的"卖点",帮你判断它是否适合你的项目:

特性说明
🎯 轻量零依赖核心包仅依赖 Canvas API,不捆绑任何其他库
📊 8 种图表类型柱状图、折线图、散点图、气泡图、饼图、环形图、雷达图、极坐标图
🎨 高度可定制颜色、动画、图例、坐标轴刻度全部可通过options配置
📦 支持 Tree-shaking按需注册组件,生产环境可显著减小打包体积
✨ 开箱即用默认自带响应式布局、入场动画和悬浮 Tooltip

Chart.js 的核心入口定义在 src/index.ts,所有图表类型分别由独立的控制器实现,例如柱状图控制器 src/controllers/controller.bar.js。

Chart.js 安装:3 种方式任选其一

Chart.js 支持三种常见的引入方式,按需选择即可,详细步骤见官方文档 docs/getting-started/installation.md。

方式一:npm 安装(推荐用于构建工具项目)

如果你使用 Webpack、Rollup、Vite、Parcel 等打包工具,直接运行:

npm install chart.js

之后在代码中以 ES Module 方式引入:

import Chart from 'chart.js/auto'; // 自动注册全部组件,开发最省事

方式二:Script 标签直接引入(零构建,最快上手)

如果只是想快速搭一个演示页面,可以下载 Chart.js 构建产物,用<script>标签引用本地文件:

<script src="path/to/chartjs/dist/chart.umd.min.js"></script>

UMD 构建会暴露全局Chart对象,无需任何打包配置,打开页面就能用。

方式三:克隆源码仓库(适合深度定制)

如果你希望阅读源码、修改行为或参与开发,可以克隆仓库(仓库为只读镜像,请勿直接提交修改):

git clone https://gitcode.com/gh_mirrors/ch/Chart.js

⚠️ 提示:源码仓库不包含预构建的dist文件,生产环境更建议使用 npm 或 UMD 构建产物。

画出你的第一张 Canvas 图表:完整最小示例

安装完成后,在 HTML 页面中加入一个canvas元素和一段初始化代码。以下是官方文档 docs/getting-started/index.md 中的经典最小示例——一个柱状图只需要不到 30 行代码

<div> <canvas id="myChart"></canvas> </div> <script> const ctx = document.getElementById('myChart'); new Chart(ctx, { type: 'bar', // 图表类型:bar 柱状图 data: { labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'], datasets: [{ label: '# of Votes', data: [12, 19, 3, 5, 2, 3], borderWidth: 1 }] }, options: { scales: { y: { beginAtZero: true } // Y 轴从 0 开始 } } }); </script>

运行后你会得到一张完整的 Chart.js Canvas 柱状图,包含图例、网格线和坐标轴刻度:

💡 小技巧:建议像上面那样把<canvas>包在一个容器div中。Chart.js 默认是响应式的,图表会自动填满外层容器,容器尺寸即图表尺寸。

读懂这段代码的 4 个核心概念

概念代码位置作用
画布canvas#myChartChart.js 的绘制载体,所有图表都渲染在 canvas 上
type'bar'指定图表类型,可换成'line''doughnut''radar'
datalabels+datasetslabels是 X 轴标签,datasets是一个数组,每个数据集包含labeldata数据点
optionsscales.y.beginAtZero配置项入口,控制坐标轴、插件、动画等一切外观

进阶:从"能画"到"好看"的 3 个技巧

跑通第一个图只是开始,下面 3 个技巧能让你快速做出"产品级"图表。完整分步实践可参考官方指南 docs/getting-started/usage.md。

1. 利用默认能力:图例、网格与动画免费送你

如上示例所示,Chart.js 的柱状图默认就带上了图例、网格线和入场动画,鼠标悬停还会出现 Tooltip 提示。带图例、网格和完整坐标轴的完整效果如下:

注意:点击图例可以切换数据集的显示/隐藏,多数据集场景下非常实用。

2. 用 options 做精细定制

所有定制都通过options完成。例如关闭动画、隐藏图例:

options: { animation: false, // 关闭入场动画 plugins: { legend: { display: false }, // 隐藏图例 tooltip: { enabled: false } // 关闭悬浮提示 } }

接入真实数据后,柱状图可以轻松承载上万个数据点而不卡顿:

3. 多数据集与多图表类型自由组合

Chart.js 支持在同一张图中绘制多个数据集,每个数据集可独立设置标签、颜色与样式。下图是官方示例中把数据拆分为 3 个数据集后的气泡图,不同类别一目了然:

除柱状图外,气泡图、折线图、饼图等类型只需修改type字段即可切换。配合坐标轴刻度格式化(如把数值显示为"米"),效果如下:

各类型图表的完整配置项可在官方文档中查阅:柱状图 docs/charts/bar.md、折线图 docs/charts/line.md、环形图 docs/charts/doughnut.md。

生产环境建议:按需注册组件减小打包体积

开发阶段用chart.js/auto图省事,但生产环境建议按需引入,让打包工具做 Tree-shaking 优化。以柱状图为例,只需注册控制器、柱形元素和两个坐标轴:

import { Chart, BarController, BarElement, CategoryScale, LinearScale } from 'chart.js'; Chart.register(BarController, BarElement, CategoryScale, LinearScale);

这样可以从 bundle 中移除未使用的图表类型代码。每种图表的"最小注册清单"详见 docs/getting-started/integration.md。

下一步:继续深挖 Chart.js 的能力

恭喜你,已经掌握了 Chart.js Canvas 图表的核心工作流!接下来推荐按以下路径继续学习:

  • 📖分步实战指南:docs/getting-started/usage.md —— 从零构建应用、接入真实 API 数据、自定义插件
  • 🎛️配置大全:docs/configuration/ —— 动画、图例、Tooltip、标题、响应式等
  • 📐坐标轴专题:docs/axes/ —— 类目轴、线性轴、对数轴、时间轴
  • 🧩插件开发:docs/developers/plugins.md —— 编写自定义插件扩展绘制逻辑
  • 🧪示例合集:docs/samples/information.md —— 官方示例,照着抄就有

Chart.js 用最小的学习成本,换来了一个功能完整、可深度定制的 HTML5 图表方案。打开编辑器,画出你的第一张 Canvas 图表吧!🚀

【免费下载链接】Chart.jsSimple HTML5 Charts using thetag项目地址: https://gitcode.com/gh_mirrors/ch/Chart.js

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 10:23:40

键盘副屏显示方案全解析:从驱动配置到自定义内容推送

最近总有朋友问我&#xff1a;刚入手的带副屏键盘&#xff0c;副屏要么不亮&#xff0c;要么一直显示默认 LOGO&#xff0c;要么想显示 CPU、内存、网速、歌词&#xff0c;却找不到一个完整的配置思路。按官方小工具只能改预设图&#xff0c;想自己写数据通道又不知道该从哪下手…

作者头像 李华
网站建设 2026/9/3 10:22:16

视频内容授权与合规管理:从素材台账到批量检查的落地流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 10:21:53

Actor-Critic算法Matlab实现:从原理到工程实践与Simulink集成

简介&#xff1a;本资源是面向强化学习初学者与Matlab实践者的Actor-Critic算法完整实现代码包&#xff0c;聚焦于连续/离散控制任务中的策略优化与价值评估协同训练问题&#xff0c;适用于高校学生、科研入门者及工程技术人员开展算法复现与原理验证。压缩包共10个文件&#x…

作者头像 李华