2013年3月1日 星期五

Google Chart API 的必要參數

上一篇整理了 Google Chart API 的基本使用方法, 提到要利用此 API 繪圖至少要有三個必要參數 : cht (圖表型態), chs (圖表大小), 以及 chd (數據參數), 說明如下 :

  1. 圖表大小參數 chs (s=size)
    此為必要參數, 用來設定 png 圖片的大小 :
    chs=寬度x高度 (單位為 px)
    Google 對圖片解析度是有限制的, 最大為 30 萬平方像數, 地圖最大 440x220.
  2. 圖表類型參數 cht (t=type)
    此為必要參數, 有的圖表類型還細分為多個子型 :

     圖表類型 cht 參數值
     折線圖 line chart lc (可多組折線), lxy (一條折線), ls (無座標軸 sparklines)
     長條圖 bar chart bvg (垂直並列=直條圖), bhg (水平並列=橫條圖), bvs (垂直堆疊圖), bhs (水平堆疊圖)
     圓餅圖 pie chart p (2D 圓餅), p3 (3D 圓餅), pc (2D 同心圓餅)
     地圖 map chart t 
     散佈圖 scatter chart s
     維恩圖 Venn chart v
     雷達圖 radar chart r (直線型), rs (曲線型)
     Google-o-meter gm
     QR code qr
     數學公式 (formula) tx

    其中 QR code 與 Formula 列在 infragraphics 中, 另外 Chart API 還有一個製作動態圖檔之 chst 參數, 可製作各種可愛小圖檔.
  3. 數據參數 chd (d=data) 與 chds (s=scale)
    此為必要參數, 是 API 繪圖的數據來源, 它有三種格式 (建議使用文字格式) :

     格式 語法 範例
     文字格式 chd=t:圖表數據字串 chd=t:32.3,5.6,7.7|44.2,34.1,67.5
     簡單編碼格式 chd=s:圖表數據字串 chd=s:Wno|RjK 
     擴充編碼格式 chd=e:圖表數據字串 chd=e:

    文字格式為明碼, 意即直接以字串數列來表示數值, 可讀性高但字串較長.
    有效範圍為 0~100 之浮點數, 超出 100 會被視為 100, 小於 0 或底線會被視為無值.
    如果要完整呈現圖形避免被截掉, 可用 chds 參數設定, 其格式如下 :
    chds=<series_1_min>,<series_1_max>,...,<series_n_min>,<series_n_max>
    每一組數據要找出其最大值與最小值分別依序填入 (漏掉的會準用最後所列之 min/max 值), 實際上比較多組數據時, 只要找出全部數據之一組最大值最小值即可, 例如 chds=-10,150. 或者也可設定為 chds=a 由 API 自動計算.
    每個數列以逗號分隔, 若無值則以 "-1" 表示, 若有多組數列, 則以管線符號 "|" 隔開.
    例如下列直條圖, -30 與 "_" 一樣被視為無值, 150 超出範圍被截掉為 100  :
    <img src="http://chart.googleapis.com/chart?chxr=0,0,5|1,0,100&chxt=x,y&chs=300x150&cht=bvg&chco=76A4FB&chd=t:50,-30,10,_,65,150&chg=100,20&chm=N,000000,0,-1,11">




    簡單編碼格式則用 A~Z, a~z, 0-9 共 62 個字元來代表 0~61 之數值, 適合數值小於 62 時用. 若無值則以底線 "_" 表示, 若有多組數據, 則以逗號 "," 隔開. 其可讀性差但字串較短.  :

    ABC E F K N OZ
     1 4101112 13141516171819202122 232425 

    abcdefghjkmnopwz
    2627282930313233343536373839404142434445464748495051 

    012345679
    52535455565758596061

    範例中 chd=s:Wno|RjK 即相當於 chd=t:22,39,40|17,35,10.擴充編碼格式則用雙字元組合來編碼, 共有 63x63=3969 種組合, 用來代表數字, 包括小數點, 可以表示浮點數. 詳細說明參考 : https://developers.google.com/chart/image/docs/data_formats
    不論是簡單編碼格式或擴充編碼格式, 只要是編碼, 可讀性都較差, 又不是機密, 幹嘛要編碼.

1 則留言:

  1. 想請教
    目前看到google圖表的資料
    在X軸上都是相同時間點的資料
    不知道如果現在手上有的資料是
    x軸的資料點不一定相同
    只是要將所有資料化成折線圖顯示在資料上
    不做各比資料對比
    這樣google charts是否可以做的出來呢?
    感謝

    回覆刪除