Chart.xkcd介绍

Chart.xkcd 是一个图表库,可绘制“非精细”、“卡通”或“手绘”样式的图表。它在GitHub上已经有 7.6K 个Star了。

快速入手

使用 Chart.xkcd 很容易,只需页面中包含库的引用和一个用于显示图表的 节点即可。

我用 本博客 动态💬 栏目的顶端图表做个说明:

关键代码结构

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--将 SVG 元素直接嵌入 HTML 页面中-->
<svg class="line-chart"></svg>
<!--引入 JS 库-->
<script src="https://cdn.jsdelivr.net/npm/chart.xkcd@1.1/dist/chart.xkcd.min.js"></script>
<script>
    //关键代码块
  const svg = document.querySelector('.line-chart')
  new chartXkcd.Line(svg, {
    title: '',
    xLabel: '',
    yLabel: '',
    data: {...},
    options: {},
  });
</script>
</body>
</html>

参数说明

  • title:图表的标题
  • xLabel:图表的 x 标签
  • yLabel:图表的 y 标签
  • data:需要可视化的数据
  • options:自定义设置
    • yTickCount: y轴上看到的刻度号数量 (默认3)
    • legendPosition:放置图例的位置
chartXkcd.config.positionType.upLeft
...upRIght
...downLeft
...downRIght
    • dataColors: 不同颜色的数据集数组
    • fontFamily: 定制字体
    • unxkcdify: 禁用xkcd效果

图表类型支持

  • 折线图 Line
  • XY图 XY
  • 条形图 Bar
  • 甜甜圈图 Pie
  • 雷达图 Radar

Hugo Shortcode

新建layouts/shortcodes/chart_xkcd.html

<div>
    <svg class='{{ .Get "name" }}'></svg>
    <script src="https://cdn.jsdelivr.net/npm/chart.xkcd@1.1/dist/chart.xkcd.min.js"></script>
    <script>
        const svg{{ .Get "name" | safeJS }} = document.querySelector('.{{ .Get "name" }}');
        new chartXkcd.{{ .Get "type" | safeJS }}(svg{{ .Get "name" | safeJS }},{
            {{ .Inner | safeJS }}
    });
    </script>
</div>

XY图使用举例

以上例子的代码👇

A beautiful code

📸 by Polacode

参考资料

HelloGitHub-kalifun 介绍chart.xkcd

官方文档

项目地址