QuickChart:動態圖表生成的高效解決方案

作者: Calpa Liu
字數:1620
出版:March 31, 2025

QuickChart 是一個功能強大的網絡服務,能夠即時生成圖表圖像,特別適合嵌入到電子郵件、SMS、聊天機器人以及其他非動態環境中。作為一個基於 Chart.js 庫構建的服務,QuickChart 提供了簡單但高度可擴展的圖表生成方案,使開發者能夠通過簡單的 URL 或 API 呼叫,快速建立各種視覺化圖表。本文將深入探討 QuickChart 的優勢以及如何有效地使用這個工具。

QuickChart 概述

QuickChart 是一個靈活的圖表生成工具,允許使用者通過簡單的 API 或 URL 請求創建各種類型的圖表。它是建立在流行的開源庫 Chart.js 之上,這使得它繼承了 Chart.js 的強大功能和靈活性,同時提供了更簡便的使用方式。QuickChart 將複雜的圖表配置轉換為圖像,使其適用於各種平台和環境。

基本上,QuickChart 接收 Chart.js 配置對象,然後將其渲染為圖像。這些配置可以通過 JSON 或 JavaScript 格式發送,使用簡單的 URL 或通過 POST 請求提交。

核心特點

QuickChart 提供多種類型的圖表,包括:

  • 線形圖(Line Charts)
  • 條形圖(Bar Charts)
  • 餅圖(Pie Charts)
  • 環形圖(Doughnut Charts)
  • 雷達圖(Radar Charts)
  • 極地區域圖(Polar Area Charts)
  • 氣泡圖(Bubble Charts)
  • 散點圖(Scatter Charts)
  • 混合圖表(Mixed Charts)
  • 時間序列圖(Time Series Charts)

此外,QuickChart 還提供 QR 碼生成功能,可以根據需要自定義 QR 碼的大小、顏色和錯誤校正級別。

QuickChart 的優勢

1. 簡單直觀的使用方式

QuickChart 最大的優勢之一是其簡單的使用方式。只需構建一個 URL 或發送一個 API 請求,即可生成複雜的圖表。這種方法不需要任何前端框架或複雜的 JavaScript 代碼,特別適合後端開發者或不熟悉前端技術的人員使用。

2. 適用於多種環境

QuickChart 生成的圖表是靜態圖像,這使得它們非常適合嵌入到不支持動態內容的環境中,如電子郵件、SMS、聊天機器人或報表。這解決了在這些環境中實現數據可視化的常見挑戰。

3. 高度可定制性

雖然 QuickChart 使用簡單,但它提供了豐富的自定義選項。使用者可以調整圖表的尺寸、背景顏色、字體、數據標籤等各個方面。此外,QuickChart 支持多種 Chart.js 插件,如數據標籤、註解和自定義顏色方案。

4. 無需 API 密鑰

QuickChart 的基本功能不需要 API 密鑰,這使得它可以輕鬆集成到各種項目中,特別適合快速原型設計或小型項目。

5. 多平台集成能力

QuickChart 可以與多種平台和工具集成,如 AppSheet、AppInventor 等。這使得它成為各種應用場景的理想選擇,無論是企業儀表板、移動應用還是教育工具。

6. 支持多種圖表格式

QuickChart 支持多種輸出格式,包括 PNG、WebP、SVG 和 PDF,滿足不同場景的需求。使用者還可以選擇不同的 Chart.js 版本(如 v2、v3 或 v4)來利用最新的功能或保持與現有代碼的兼容性。

如何使用 QuickChart

基本用法

使用 QuickChart 的最簡單方法是通過 URL 調用。以下是一個基本的 URL 結構:

https://quickchart.io/chart?c={type:'bar',data:{labels:['January','February','March','April','May'],datasets:[{label:'Users',data:[120,60,50,180,120]}]}}

這個 URL 會生成一個顯示每月用戶數量的條形圖。

每月用戶數量
每月用戶數量

參數說明

QuickChart API 支持以下主要參數:

  • cchart:Chart.js 配置對象(必需)
  • width:圖像寬度,默認為 500 像素
  • height:圖像高度,默認為 300 像素
  • devicePixelRatio:輸出的設備像素比,設置為 1 表示普通分辨率,2 表示視網膜屏幕,默認為 2
  • backgroundColor:背景顏色,可以是 RGB、HEX、HSL 或顏色名稱,默認為透明
  • version:Chart.js 版本,默認為 2
  • format:輸出格式,可以是 png、webp、svg 或 pdf,默認為 png
  • encoding:編碼方式,url 或 base64,默認為 url

創建線形圖示例

以下是創建簡單線形圖的示例:

這段代碼會生成一個顯示貓和狗數量變化的線形圖。

創建餅圖示例

這個餅圖展示了五個月份的數據分佈。

使用 POST 方法

對於複雜的圖表配置,可以使用 POST 方法發送 JSON 數據:

{
  "chart": "bar",
  "data": {
    "labels": ["January", "February", "March", "April", "May"],
    "datasets": [
      {
        "label": "Sales",
        "data": [12, 19, 3, 5, 2]
      }
    ]
  },
  "options": {
    "title": {
      "display": true,
      "text": "Sales Data"
    }
  }
}

生成 QR 碼

QuickChart 也提供 QR 碼生成功能:

https://quickchart.io/qr?text=Hello+world&size=600&dark=000000&light=ffffff

這個 URL 會生成一個包含”Hello world”文本的 QR 碼,尺寸為 600x600 像素,黑色數據點和白色背景。

Hello world QR 碼
Hello world QR 碼

實際應用場景

在 NodeJS 應用中使用 QuickChart

對於 TypeScript/Node.js 開發者,可以使用官方的 quickchart-js 庫:

import QuickChart from 'quickchart-js';

const chart = new QuickChart();
chart.setConfig({
  type: 'bar',
  data: {
    labels: ['Q1', 'Q2', 'Q3', 'Q4'],
    datasets: [{
      label: '2024 年銷售',
      data: [50, 75, 90, 110]
    }]
  }
});

// 獲取圖表 URL
const chartUrl = chart.getUrl();

// 或者保存為文件
await chart.toFile('./my-chart.png');

與 AppSheet 集成

QuickChart 可以與 AppSheet 無縫集成,創建動態數據可視化。通過從 AppSheet 提取數據並構建 QuickChart URL,可以在應用中顯示高質量的圖表,無需任何擴展。

在 AppInventor 中使用

對於使用 MIT AppInventor 的開發者,可以利用 QuickChart API 創建圖表,無需安裝任何擴展。這使得移動應用開發者能夠輕鬆地在其應用中包含數據可視化。

結論

QuickChart 是一個強大而靈活的工具,適合快速創建和嵌入圖表。它的簡單性、多樣性和高度可定制性使其成為各種應用場景的理想選擇,從簡單的網頁到複雜的企業應用。對於全棧開發者,尤其是使用 TypeScript 和 Node.js 的開發者,QuickChart 提供了一種輕量級的解決方案,可以輕鬆地將數據可視化集成到各種項目中。

無論您是需要在電子郵件中嵌入圖表,還是在 Web3 應用中展示數據趨勢,QuickChart 都能提供簡單而有效的解決方案。通過簡單的 URL 調用或 API 請求,您可以創建專業且吸引人的圖表,提升您的應用或報告的數據表現力。

感謝您閱讀我的文章。歡迎隨時分享你的想法。
關於 Calpa

Calpa 擅長使用 TypeScriptReact.jsVue.js 建立 Responsive Website。

他積極參與開源社區,曾在 2019 年的香港開源大會上擔任講者,提供工作經驗和見解。此外,他也在 GitHub 上公開分享個人博客程式碼,已獲得超過 300 顆星星和 60 個分支的支持。

他熱愛學習新技術,並樂意分享經驗。他相信,唯有不斷學習才能跟上快速演變的技術環境。

熱門文章

最新文章