Chart.js
大约 2 分钟
让你 VuePress 站点中的 Markdown 文件支持图表。
配置
在你的项目中安装 chart.js:
pnpm
pnpm add -D chart.jsyarn
yarn add -D chart.jsnpm
npm i -D chart.js之后启用它:
import { hopeTheme } from "vuepress-theme-hope";
export default hopeTheme({
markdown: {
chartjs: true,
},
});格式
::: chartjs 标题
```json
{
// 此处为图表配置
}
```
:::你应该尽可能使用 json 代码块来提供你的图表数据配置,但如果需要动态生成数据,你也可以使用脚本块。js 或 javascript 代码块均受支持。你应当将导出的对象赋值给 module.exports。
注意
出于安全考虑,你需要手动允许特定文件中的脚本块。请在主题选项中设置 markdown.DANGEROUS_ALLOW_SCRIPT_EXECUTION: true 和 markdown.DANGEROUS_SCRIPT_EXECUTION_ALLOWLIST: ['your/file/path.md']。
案例
一个块状图案例
块状图
::: chartjs 一个块状图案例
```json
{
"type": "bar",
"data": {
"labels": ["红色", "蓝色", "黄色", "绿色", "紫色", "橙色"],
"datasets": [
{
"label": "投票数",
"data": [12, 19, 3, 5, 2, 3],
"backgroundColor": [
"rgba(255, 99, 132, 0.2)",
"rgba(54, 162, 235, 0.2)",
"rgba(255, 206, 86, 0.2)",
"rgba(75, 192, 192, 0.2)",
"rgba(153, 102, 255, 0.2)",
"rgba(255, 159, 64, 0.2)"
],
"borderColor": [
"rgba(255, 99, 132, 1)",
"rgba(54, 162, 235, 1)",
"rgba(255, 206, 86, 1)",
"rgba(75, 192, 192, 1)",
"rgba(153, 102, 255, 1)",
"rgba(255, 159, 64, 1)"
],
"borderWidth": 1
}
]
},
"options": {
"scales": {
"y": {
"beginAtZero": true
}
}
}
}
```
:::一个气泡图案例
气泡图
::: chartjs 一个气泡图案例
```json
{
"type": "bubble",
"data": {
"datasets": [
{
"label": "第一个数据集",
"data": [
{ "x": 20, "y": 30, "r": 15 },
{ "x": 40, "y": 10, "r": 10 }
],
"backgroundColor": "rgb(255, 99, 132)"
}
]
}
}
```
:::一个线状图案例
线状图
::: chartjs 一个线状图案例
```json
{
"type": "line",
"data": {
"labels": ["一月", "二月", "三月", "四月", "五月", "六月", "七月"],
"datasets": [
{
"label": "我的第一个数据集",
"data": [65, 59, 80, 81, 56, 55, 40],
"fill": false,
"borderColor": "rgb(75, 192, 192)",
"tension": 0.1
}
]
}
}
```
:::一个玫瑰图案例
玫瑰图
::: chartjs 一个玫瑰图案例
```json
{
"type": "polarArea",
"data": {
"labels": ["红色", "绿色", "黄色", "灰色", "蓝色"],
"datasets": [
{
"label": "我的第一个数据集",
"data": [11, 16, 7, 3, 14],
"backgroundColor": [
"rgb(255, 99, 132)",
"rgb(75, 192, 192)",
"rgb(255, 205, 86)",
"rgb(201, 203, 207)",
"rgb(54, 162, 235)"
]
}
]
}
}
```
:::一个雷达图案例
雷达图
::: chartjs 一个雷达图案例
```json
{
"type": "radar",
"data": {
"labels": ["吃饭", "喝水", "睡觉", "设计", "编程", "骑车", "跑步"],
"datasets": [
{
"label": "我的第一个数据集",
"data": [65, 59, 90, 81, 56, 55, 40],
"fill": true,
"backgroundColor": "rgba(255, 99, 132, 0.2)",
"borderColor": "rgb(255, 99, 132)",
"pointBackgroundColor": "rgb(255, 99, 132)",
"pointBorderColor": "#fff",
"pointHoverBackgroundColor": "#fff",
"pointHoverBorderColor": "rgb(255, 99, 132)"
},
{
"label": "我的第二个数据集",
"data": [28, 48, 40, 19, 96, 27, 100],
"fill": true,
"backgroundColor": "rgba(54, 162, 235, 0.2)",
"borderColor": "rgb(54, 162, 235)",
"pointBackgroundColor": "rgb(54, 162, 235)",
"pointBorderColor": "#fff",
"pointHoverBackgroundColor": "#fff",
"pointHoverBorderColor": "rgb(54, 162, 235)"
}
]
},
"options": {
"elements": {
"line": {
"borderWidth": 3
}
}
}
}
```
:::一个散点图案例
散点图
::: chartjs 一个散点图案例
```json
{
"type": "scatter",
"data": {
"datasets": [
{
"label": "散点数据集",
"data": [
{ "x": -10, "y": 0 },
{ "x": 0, "y": 10 },
{ "x": 10, "y": 5 },
{ "x": 0.5, "y": 5.5 }
],
"backgroundColor": "rgb(255, 99, 132)"
}
]
},
"options": {
"scales": {
"x": {
"type": "linear",
"position": "bottom"
}
}
}
}
```
:::文档
相关详情,详见 Chart.js 文档.
更新日志
2025/11/28 09:34
查看所有更新日志
7d390-于660a5-于55e92-于b1230-于b7480-于22787-于b41c0-于54c46-于3f311-于55ea3-于792dc-于83bff-于cd757-于11463-于8174c-于2fa50-于3c8d6-于9856d-于23515-于48bca-于9cdd7-于63d09-于7b139-于fd395-于1eb77-于67429-于