翻譯|使用教程|編輯:吳園園|2020-03-17 14:18:29.730|閱讀 256 次
概述:正確完成信息圖表后,信息圖表就會(huì)脫離“標(biāo)準(zhǔn)”圖表的框,以更具視覺吸引力的方式告訴數(shù)據(jù)故事。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Highcharts是一款純JavaScript編寫的圖表庫(kù),為你的Web網(wǎng)站、Web應(yīng)用程序提供直觀、交互式圖表。當(dāng)前支持折線、曲線、區(qū)域、區(qū)域曲線圖、柱形圖、條形圖、餅圖、散點(diǎn)圖、角度測(cè)量圖、區(qū)域排列圖、區(qū)域曲線排列圖、柱形排列圖、極坐標(biāo)圖等幾十種圖表類型。
正確完成信息圖表后,信息圖表就會(huì)脫離“標(biāo)準(zhǔn)”圖表的框,以更具視覺吸引力的方式告訴數(shù)據(jù)故事。在當(dāng)今時(shí)代,大多數(shù)信息圖表都是靜態(tài)圖像。但是,如果您想吸引在線觀眾,為什么不使用交互式信息圖呢?
在本教程中,我將向您展示如何使用Highcharts構(gòu)建交互式信息圖。該圖表的主題是對(duì)美洲杯和2016年歐洲杯的比較。這些數(shù)字是根據(jù)此處的“標(biāo)準(zhǔn)”靜態(tài)信息圖改編而成的。
備注
強(qiáng)烈建議您了解Javascript,Node.js,expressJS和MongoDB的基礎(chǔ)知識(shí),以了解應(yīng)用程序代碼。
我將首先介紹該體系結(jié)構(gòu)。然后我將解釋代碼。
架構(gòu)
基本上,該項(xiàng)目是將靜態(tài)和動(dòng)態(tài)數(shù)據(jù)集結(jié)合起來(lái),以創(chuàng)建更具吸引力的信息圖。數(shù)據(jù)是:
鍵號(hào)存儲(chǔ)在項(xiàng)目文件中,而測(cè)驗(yàn)結(jié)果則保存到數(shù)據(jù)庫(kù)(MongoDB)中,然后通過(guò)服務(wù)器讀取以進(jìn)行可視化。
我們檢查架構(gòu)的每個(gè)部分。
數(shù)據(jù)庫(kù)
測(cè)驗(yàn)結(jié)果保存在MongoDB中。此應(yīng)用程序中有兩個(gè)測(cè)驗(yàn):
備注
MongoDB在構(gòu)建JavaScript應(yīng)用程序時(shí)易于使用,因?yàn)樗镜卮鎯?chǔ)JSON。當(dāng)然,您可以自由使用適合您的任何其他數(shù)據(jù)庫(kù)或服務(wù)。
這是保存在數(shù)據(jù)庫(kù)中的數(shù)據(jù)的結(jié)構(gòu):
1、第一次測(cè)驗(yàn){ "name": "hostPolls", "answers": [ 96, 44, 49, 49 ] }
2、第二次測(cè)驗(yàn)
{ "name": "playerPolls", "answers": [ 32, 9, 2, 27, 6, 9 ] }用戶界面
用戶界面非常簡(jiǎn)單明了。它有13頁(yè)(或屏幕,因?yàn)樗菃?頁(yè)應(yīng)用程序)。每個(gè)頁(yè)面顯示:有關(guān)這兩個(gè)事件的一個(gè)主鍵號(hào)。
1、測(cè)驗(yàn)
2、測(cè)驗(yàn)的結(jié)果
所有頁(yè)面都有兩個(gè)按鈕可以轉(zhuǎn)到下一頁(yè)或上一頁(yè)。
頁(yè)面在此文件夾下:src/pages
為了更好地組織頁(yè)面并簡(jiǎn)化以后的維護(hù),每個(gè)頁(yè)面都有自己的文件夾,其中一個(gè)文件包含可視化的數(shù)據(jù)和內(nèi)容,另一個(gè)文件包含HTML代碼。
例如,宿主頁(yè)文件夾具有以下文件:
我使用jQuery對(duì)服務(wù)器執(zhí)行Ajax請(qǐng)求。但是,任何其他庫(kù)或框架也可以正常工作。與管理請(qǐng)求有關(guān)的文件位于utils文件夾下。
有兩個(gè)請(qǐng)求postPoll和getPoll:
import ajax from './ajax.js'; export function postPoll(route, answers) { return ajax('POST', route, JSON.stringify(answers)); } export function getPoll(route) { return ajax('GET', route); }ajax方法在文件中:ajax.js
$.ajax({ type: type, url: url + route, dataType: 'json', data: data, contentType: 'application/json', success: function(result) { resolve(result); }, error: function(error) { reject(error); } });服務(wù)器
服務(wù)器的主要任務(wù)是保存測(cè)驗(yàn)數(shù)據(jù)并從數(shù)據(jù)庫(kù)中檢索它們。
我使用帶有以下模塊的Node.js構(gòu)建了服務(wù)器:
備注
確保使用文件保護(hù)您的憑據(jù)config.json
{ "dbCredentials":{ "DBlogin" : "myLogin", "DBpwd" : "letMeIn" }, "BLink" : "myLinkTo/infographic" }
服務(wù)器提供四個(gè)路由:
一旦創(chuàng)建了應(yīng)用程序的所有組件,您要做的就是找到一個(gè)Web服務(wù)來(lái)托管該應(yīng)用程序。我使用在線云Web服務(wù)AmazonAWS,但是任何其他服務(wù)都可以完成這項(xiàng)工作。請(qǐng)注意該文件以在AWS lambda上運(yùn)行應(yīng)用程序。該文件的代碼非常基本:lambda.js
const awsServerlessExpress = require('aws-serverless-express'); const app = require('./lib/app'); const server = awsServerlessExpress.createServer(app); exports.handler = (event, context) => { return awsServerlessExpress.proxy(server, event, context); };
就是這樣,就這么簡(jiǎn)單。現(xiàn)在您知道了如何使用Highcharts構(gòu)建響應(yīng)式交互式信息圖,而所有這些都無(wú)需框架。
隨時(shí)與您分享圖表和Highcharts的經(jīng)驗(yàn),如果您有任何疑問(wèn)或評(píng)論,請(qǐng)使用下面的評(píng)論部分告訴我。
想要購(gòu)買Highcharts正版授權(quán)的朋友可以本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: