Highcharts 是一個(gè)十分強(qiáng)大的交互式圖表庫(kù),它可以用于可視化大量的數(shù)據(jù)。Highcharts 支持多種常見(jiàn)圖表類型,例如折線圖、柱狀圖、餅圖、散點(diǎn)圖等。與此同時(shí),它還支持多種數(shù)據(jù)源:靜態(tài)數(shù)據(jù)、CSV 文件、JSON 數(shù)據(jù)庫(kù)等等。
在 Highcharts 中,我們可以將數(shù)據(jù)存儲(chǔ)在 JSON 數(shù)據(jù)庫(kù)中,這樣可以方便我們進(jìn)行數(shù)據(jù)的管理與維護(hù)。封裝 JSON 數(shù)據(jù)庫(kù)可以使我們的代碼更加清晰易懂,也可以方便我們以后的代碼維護(hù)。
var jsonData = [{ "name": "John", "age": 20, "gender": "male", "score": 80 }, { "name": "Mary", "age": 23, "gender": "female", "score": 90 }, { "name": "Peter", "age": 25, "gender": "male", "score": 75 } ]; // 假設(shè)我們要繪制一個(gè)關(guān)于成績(jī)的折線圖,那么我們可以這樣做: Highcharts.chart('container', { chart: { type: 'line' }, title: { text: 'Score Line Chart' }, xAxis: { categories: ['John', 'Mary', 'Peter'] }, yAxis: { title: { text: 'Score' } }, series: [{ name: 'Score', data: [80, 90, 75] }] });
如上所示,我們已經(jīng)創(chuàng)建了一個(gè)名為 jsonData 的 JSON 數(shù)據(jù)庫(kù),并指定了三個(gè)數(shù)據(jù)項(xiàng),分別是姓名、年齡、性別和分?jǐn)?shù)。然后我們可以根據(jù)這個(gè) JSON 數(shù)據(jù)庫(kù)繪制一個(gè)折線圖,其中 X 軸為姓名,Y 軸為分?jǐn)?shù)。
當(dāng)然,如果我們的數(shù)據(jù)量很大,我們可以使用一個(gè) AJAX 請(qǐng)求來(lái)獲取 JSON 數(shù)據(jù)庫(kù),這樣可以節(jié)省我們的代碼量。
$.getJSON('url_to_json_data', function (data) { Highcharts.chart('container', { chart: { type: 'line' }, title: { text: 'Score Line Chart' }, xAxis: { categories: $.map(data, function (item) { return item.name; }) }, yAxis: { title: { text: 'Score' } }, series: [{ name: 'Score', data: $.map(data, function (item) { return item.score; }) }] }); });
如上所示,我們使用 $.getJSON 方法獲取了 JSON 數(shù)據(jù)庫(kù),并在獲取成功之后使用 Highcharts 繪制了一個(gè)折線圖。在 X 軸上使用 $.map 方法將姓名映射出來(lái),在 Y 軸上使用 $.map 方法將分?jǐn)?shù)映射出來(lái)。
總的來(lái)說(shuō),封裝 JSON 數(shù)據(jù)庫(kù)可以使我們的代碼更加清晰,也可以方便我們以后的代碼維護(hù)。我們可以根據(jù)自己的需求來(lái)設(shè)計(jì) JSON 數(shù)據(jù)庫(kù)中的數(shù)據(jù)結(jié)構(gòu),并使用 Highcharts 繪制出自己所需要的圖表。