8.01.2013

jQuery Flot Chart

為了工作上的需求,要用jQuery來呈現一些圖表,就上網找找看看,是否有現成的範例模組,於是就找到了這個網站:http://www.jqueryflottutorial.com/tw/.

它提供了非常多地圖表範例─近16種左右。而且程式碼也不會很難懂;當然,如果只看過一個範例的程式碼,很難一窺全貌它到底在表達什麼,甚至是它的一些簡單架構。倘若閒暇之餘,每種圖檔都拿來練習一下,就不難發現它的一些潛規則。

Flot Chart總共需要用到以下的JavaScript Library (Framework):

01. jquery-1.8.3.min.js - 一定要用它們所建議的1.8.3的版本;自己之前用2.0.0的版本,結果在MSIE下完全不行。
02. excanvas.min.js - Canvas的Library建議也要包含;因為在某些MSIE8,或是MSIE9的版本會有問題。
03. jquery.flot.min.js
04. jquery.flot.symbol.js
05. jquery.flot.axislabels.js
06. jquery.flot.time.js
07. jshashtable-2.1.js
08. jquery.numberformatter-1.2.3.min.js
09. jquery.flot.stack.js - 如果是堆疊圖系列 (堆疊直條圖、堆疊橫條圖),要用到這一個Library (因為資料的數值是累加上去的)。
10. jquery.flot.pie.js - 如果是圓餅圖傾斜圓餅圖甜甜圈圖,記得要包含這一個Library。

再來它的程式架構不外乎就是:
var dataX = [[a, b], [c, d], [e, f], ....];
使用者所要呈現的資料,都用二維陣列來表示。
var dataset = [
    {
        lable:
        data:
        color:
        bars: { // 條狀圖 (直條圖、橫條圖)需要用到此一系列的參數
            show:
            align:
            barWidth:
            lineWidth:
        },
        // 折線圖系列需要用到points和lines這兩個參數
        points: {
            symbol:
            fillColor:
            show: true
        },
        lines: {
            show:
        }
        ....
    }
];
dataset故名思義,就是關於資料所要呈現的方式。
options = {
    seiers: { },
    bars: { },
    xaxis: { },
    yaxis: { },
    legend: {},
    grid: {}
};
options選項則是指關於圖表選項的相關設定。

再來就是程式碼的部份:
<script type="text/javascript" language="JavaScript">
// To do something....
</script>
<body>
    <div id="...."></div>
</body>
<script type="text/javascript" language="JavaScript">
    $(window.document).ready(function () {
        // To do something....
        return;
    });
</script>
ready()函式記得一定要放在<body>標籤結束之後,因為ready()函式指的是「當網頁上所有的DOM元素都載入後所要做的動作」;如果放在<body>之前,DOM尚未載入完成就執行ready()在MSIE上會有問題。

再來,就是$.fn.UseTooltip()showTooltip()這兩個function,指的是當滑鼠游標移至該筆資料節點 (或是區域)時,所要呈現小標籤的樣式和資料。

最後,以自己的經驗而言,盡可能地使用它們所提供的範例來使用 (它們提供的範例算蠻多的);倘若要自己生一個非範例所提供的樣式,除非很懂得他們的Library在寫些什麼,要不然會很不易Debug。

沒有留言:

張貼留言