版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第詳解如何在JavaScript中創(chuàng)建線性?xún)x表圖目錄什么是線性?xún)x表圖線性量規(guī)的類(lèi)型我們將要構(gòu)建的線性?xún)x表可視化構(gòu)建JavaScript線性?xún)x表1、創(chuàng)建一個(gè)基本的HTML頁(yè)面2、包含必要的JavaScript文件3、添加數(shù)據(jù)值4、為圖表編寫(xiě)JavaScript代碼結(jié)論我們將展示如何快速創(chuàng)建一個(gè)酷炫的交互式線性?xún)x表圖表,突出顯示世界各地的Covid-19疫苗接種數(shù)據(jù)。我們的圖表將使我們能夠在撰寫(xiě)本文時(shí)可視化Covid-19疫苗接種的狀態(tài),并將顯示兩種類(lèi)型的數(shù)據(jù)顯示我們距離為全球人口部分和完全接種疫苗的中途目標(biāo)還有多遠(yuǎn)。
什么是線性?xún)x表圖
鑒于正在創(chuàng)建的大量數(shù)據(jù)以及從數(shù)據(jù)中收集信息的眾多可能性,數(shù)據(jù)可視化是一種非常寶貴的工具。數(shù)據(jù)可視化對(duì)于識(shí)別趨勢(shì)、解釋模式以及向目標(biāo)受眾傳達(dá)復(fù)雜的想法特別有用。
線性?xún)x表圖表示顯示所需值的垂直或水平線性刻度,帶有顏色刻度以及單個(gè)或多個(gè)指針??梢愿鶕?jù)所表示的數(shù)據(jù)在軸上設(shè)置數(shù)據(jù)范圍的最小值和最大值。指針位置指示指標(biāo)的當(dāng)前值。
儀表圖可以使用單個(gè)指針或標(biāo)記組合顯示單個(gè)值或多個(gè)值。指針可以是帶有任何形狀標(biāo)記的針或線,例如圓形、正方形、矩形或三角形。
線性?xún)x表圖表類(lèi)型是一種有效的可視化表示,用于顯示值與所需數(shù)據(jù)點(diǎn)的距離。
線性量規(guī)的類(lèi)型
線性?xún)x表的幾種類(lèi)型是溫度計(jì)圖表,子彈圖表,坦克圖表和LED圖表。水銀溫度計(jì)由顯示溫度和指針值的小刻度組成是線性?xún)x表圖的典型例子。
我們將要構(gòu)建的線性?xún)x表可視化
這是最終線性?xún)x表圖的預(yù)覽。按照本教程了解我們?nèi)绾问褂肑avaScript構(gòu)建這個(gè)有趣且信息豐富的線性?xún)x表圖。
構(gòu)建JavaScript線性?xún)x表
掌握HTML和JavaScript等技術(shù)的技能總是很有用的。但在本教程中,我們使用了一個(gè)JS圖表庫(kù),即使只需要很少的技術(shù)知識(shí),也可以更輕松地創(chuàng)建像線性?xún)x表這樣的引人注目的圖表。
有幾個(gè)JavaScript圖表庫(kù)可以輕松地可視化數(shù)據(jù),這里我們使用AnyChart創(chuàng)建線性?xún)x表圖。這個(gè)庫(kù)很靈活,有大量的文檔,它包含一些很好的例子。此外,它還有一個(gè)用于試驗(yàn)代碼的游樂(lè)場(chǎng),并且可以免費(fèi)用于非商業(yè)用途。如果您想購(gòu)買(mǎi)許可版本,您可以查看可用選項(xiàng),如果您是教育機(jī)構(gòu)或非營(yíng)利組織,您可以在此處聯(lián)系以獲取免費(fèi)許可。
制作JavaScript線性?xún)x表的步驟
以下是創(chuàng)建線性?xún)x表圖的基本步驟:
創(chuàng)建一個(gè)基本的HTML頁(yè)面。包括必要的JavaScript文件。添加數(shù)據(jù)。為圖表編寫(xiě)JavaScript代碼。
讓我們?cè)谙旅嬖敿?xì)了解這些步驟中的每一個(gè)。
1、創(chuàng)建一個(gè)基本的HTML頁(yè)面
我們需要做的第一件事是制作一個(gè)HTML頁(yè)面來(lái)保存我們的可視化。我們添加一個(gè)div塊元素并給它一個(gè)ID,以便我們以后可以引用它:
htmllang="en"
head
titleJavaScriptLinearGauge/title
styletype="text/css"
html,body,#container{
width:100%;height:100%;margin:0;padding:0;
/style
/head
body
divid="container"/div
/body
/html
的寬度和高度屬性設(shè)置為100%,以便圖表在整個(gè)屏幕上呈現(xiàn)。這些屬性可以根據(jù)需要進(jìn)行修改。
2、包含必要的JavaScript文件
下一步是在HTML頁(yè)面中引用JS鏈接。我們將在本教程中使用AnyChart庫(kù),所以讓我們從他們的CDN中包含相應(yīng)的文件。
要?jiǎng)?chuàng)建線性?xún)x表圖,我們需要添加三個(gè)腳本:核心模塊、線性?xún)x表模塊和表格模塊:
htmllang="en"
head
titleJavaScriptLinearGauge/title
styletype="text/css"
html,body,#container{
width:100%;height:100%;margin:0;padding:0;
/style
/head
body
divid="container"/div
script
//AllthecodefortheJSlineargaugewillcomehere
/script
scriptsrc="/releases/8.10.0/js/anychart-core.min.js"/script
scriptsrc="/releases/8.10.0/js/anychart-linear-gauge.min.js"/script
scriptsrc="/releases/8.10.0/js/anychart-table.min.js"/script
/body
/html
3、添加數(shù)據(jù)值
線性?xún)x表圖的數(shù)據(jù)是從OurWorldinData中收集的,并包含在代碼中。在該網(wǎng)站上,我們可以看到全世界每個(gè)大陸接種一劑和兩劑Covid疫苗的人的百分比。
因?yàn)?在撰寫(xiě)本文時(shí))沒(méi)有一個(gè)數(shù)字大于50%,我們將所有線性?xún)x表的軸的最大限制保持為50%,并且我們比較每個(gè)大陸與該標(biāo)記的距離,以及全球數(shù)字。我們用LED表示至少部分接種疫苗的數(shù)字,用條形指針表示完全接種疫苗的數(shù)字。我們將在最后一步看到如何添加數(shù)據(jù)。
那么,我們的初始步驟都完成了,現(xiàn)在讓我們添加代碼,用JavaScript制作一個(gè)線性?xún)x表圖!
4、為圖表編寫(xiě)JavaScript代碼
在添加任何代碼之前,我們將所有內(nèi)容封裝在一個(gè)函數(shù)中,以確保其中的整個(gè)代碼僅在頁(yè)面加載后執(zhí)行。
創(chuàng)建線性?xún)x表圖涉及幾個(gè)步驟,并且比其他基本圖表類(lèi)型更復(fù)雜一些。但這并不意味著它非常困難,我們將通過(guò)每一步來(lái)了解圖表是如何制作的。
定義儀表圖的線性刻度和軸
我們的圖表中有多個(gè)指針。因此,讓我們從創(chuàng)建一個(gè)接受兩個(gè)值的函數(shù)開(kāi)始:一個(gè)用于條形指針,一個(gè)用于LED儀表。然后我們將創(chuàng)建一個(gè)儀表,設(shè)置數(shù)據(jù),并將布局指定為水平。接下來(lái),我們將設(shè)置刻度和軸的范圍。我們將制作出具有最小和最大范圍的線性比例。對(duì)于軸,我們將定義屬性并設(shè)置方向:
functiondrawGauge(value,settings){
//Creategaugewithsettings
constgauge=anychart.gauges.linear();
gauge.data([value,settings.value]);
gauge.layout('horizontal');
//Setscaleforgauge
constscale=anychart.scales.linear();
scale.minimum(0).maximum(settings.maximum).ticks({interval:2});
//Setaxisforgauge
constaxis=gauge.axis(0);
axis.width('1%').offset('43%').scale(scale).orientation('bottom');
}
設(shè)置條形指針和標(biāo)簽
現(xiàn)在,我們將為條形系列創(chuàng)建條形指針和標(biāo)簽。給標(biāo)簽一個(gè)偏移量以避免與指針重疊:
//Createandsetbarpoint
constbarSeries=gauge.bar(0);
barSeries
.scale(scale)
.width('4%');
//Createandsetlabelwithactualdata
constlabelBar=barSeries.labels();
labelBar
.enabled(true)
.offsetY('-15px');
創(chuàng)建LED指針并設(shè)置顏色屬性
在LED點(diǎn)中,我們將指定點(diǎn)之間的間隙,并使用dimmer屬性設(shè)置剩余LED點(diǎn)的顏色以指示不亮的效果。我們還將聲明點(diǎn)亮的LED點(diǎn)的色標(biāo):
//CreateandsetLEDpoint
constledPointer=gauge.led(1);
ledPointer
.offset('10%')
.width('30%')
.count(settings.maximum)
.scale(scale)
.gap(0.55)
.dimmer(function(){
return'#eee';
ledPointer.colorScale().colors(['#63b39b','#63b39b']);
用每個(gè)數(shù)據(jù)點(diǎn)的目標(biāo)值聲明儀表
為了為每個(gè)大陸制作線性?xún)x表,我們將為每個(gè)區(qū)域調(diào)用上面定義的函數(shù)及其數(shù)據(jù)。第一個(gè)數(shù)字表示目標(biāo)值數(shù)據(jù),第二個(gè)變量是帶有LED數(shù)據(jù)的對(duì)象。maximum保持恒定50,而是value每個(gè)數(shù)據(jù)點(diǎn)的完全接種疫苗人口的百分比值。該值將由指針顯示:
//Creategauges
constworld=drawGauge(13.68,{maximum:50,value:27.13});
consteurope=drawGauge(36.98,{maximum:50,value:47.28});
constnAmerica=drawGauge(36.77,{maximum:50,value:46.53});
constsAmerica=drawGauge(22.8,{maximum:50,value:40.54});
constasia=drawGauge(10.14,{maximum:50,value:27.16});
constoceania=drawGauge(9.75,{maximum:50,value:22.12});
constafrica=drawGauge(1.56,{maximum:50,value:3.04});
設(shè)置線性?xún)x表的布局
為了在另一個(gè)下顯示每個(gè)線性?xún)x表,我們將定義一個(gè)表格并將標(biāo)題與每個(gè)數(shù)據(jù)點(diǎn)一起添加為單獨(dú)的行。我們將添加布局的各種屬性,例如對(duì)齊方式和字體大小。我們還將為第一行定義參數(shù),因?yàn)樗菢?biāo)題,并將第一列的寬度屬性設(shè)置為100%,因?yàn)槲覀儾辉傩枰魏瘟校?/p>
//Createtabletoplacegauges
constlayoutTable=anychart.standalones.table();
layoutTable
.hAlign('right')
.vAlign('middle')
.fontSize(14)
.cellBorder(null);
//Putgaugesintothelayouttable
layoutTable.contents([
[null,'Covid-19Vaccination-Howfararewefromthehalfwaymark'],
['World',world],
['Europe',europe],
['NorthAmerica',nAmerica],
['SouthAmerica',sAmerica],
['Asia',asia],
['Oceania',oceania],
['Africa',africa]
//Setheightforfirstrowinlayouttable
layoutTable
.getRow(0)
.height(50)
.fontSize(22)
.hAlign('center');
//Setthefirstcolumnto100%width
layoutTable.getCol(0).width(100);
繪制圖表
最后一步是引用我們?cè)谏弦徊街刑砑拥娜萜?,并繪制圖表:
//Setcontaineridandinitiatedrawing
layoutTable.container('container');
layoutTable.draw();
就是這樣。我們現(xiàn)在有一個(gè)功能齊全且美觀的JavaScript線性?xún)x表圖!可以在CodePen上查看此線性量規(guī)初始版本的代碼。
使圖表可訪問(wèn)
確保盡可能多的人可以訪問(wèn)圖表是一種很好的做法。因此,請(qǐng)記住a11y,我們制作了更適合屏幕閱讀器的線性?xún)x表圖的基本版本。您可以在此處查看此內(nèi)容,還可以在AnyChartJavaScript庫(kù)的文檔中閱讀有關(guān)此方面的更多信息。
自定義線性?xún)x表
我們制作的默認(rèn)線性?xún)x表圖表現(xiàn)在看起來(lái)很棒,但是進(jìn)行一些修改將增強(qiáng)可讀性并使圖表更加出色。JavaScript庫(kù)不僅非常適合快速創(chuàng)建圖表,還適合根據(jù)需要自定義可視化。圖表庫(kù)提供了許多用于控制圖表行為和美觀的配置選項(xiàng)。讓我們對(duì)當(dāng)前的線性?xún)x表圖進(jìn)行一些小而有效的調(diào)整。
顏色修改
為了使線性?xún)x表看起來(lái)更具凝聚力,讓我們將條形指針的顏色屬性設(shè)置為L(zhǎng)ED點(diǎn)的較暗版本。我們將通過(guò)指定欄的填充和描邊屬性來(lái)實(shí)現(xiàn):
//Createandsetbarpoint
constbarSeries=gauge.bar(0);
barSeries
.scale(scale)
.width('4%')
.fill('#296953')
.stroke('#296953');
為我們的線性?xún)x表圖添加圖例
由于我們?yōu)闂l形圖、亮起和不亮起的LED指針使用了不同的顏色,因此最好提供一個(gè)圖例來(lái)解釋顏色。我們將制作一個(gè)圖例并將其添加到圖表標(biāo)題下方:
//Createstandalonelegend
constlegend=anychart.standalones.legend();
legend
.position('center')
.items([
{text:'Fullyvaccinated',iconFill:'#29695
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二項(xiàng)式定理知識(shí)點(diǎn)課件
- 2026年鐘山縣清塘鎮(zhèn)人民政府公開(kāi)招聘?jìng)淇碱}庫(kù)員備考題庫(kù)及一套參考答案詳解
- 醫(yī)院法律法規(guī)培訓(xùn)課件
- 2025至2030中國(guó)土壤修復(fù)技術(shù)比較與項(xiàng)目實(shí)施案例研究報(bào)告
- 2025至2030中國(guó)腦機(jī)接口醫(yī)療應(yīng)用倫理審查與臨床試驗(yàn)規(guī)范研究
- 2025至2030中國(guó)人工智能芯片行業(yè)市場(chǎng)現(xiàn)狀技術(shù)突破及商業(yè)化應(yīng)用前景分析研究報(bào)告
- iso質(zhì)量環(huán)境安全貫標(biāo)課件
- 2026年雄安未來(lái)產(chǎn)業(yè)技術(shù)研究院(事業(yè)單位)招聘44人備考題庫(kù)有答案詳解
- 2025至2030鈉離子電池產(chǎn)業(yè)化進(jìn)程評(píng)估及儲(chǔ)能系統(tǒng)替代機(jī)會(huì)研究報(bào)告
- 2025至2030文化娛樂(lè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與消費(fèi)行為研究報(bào)告
- 2025年高中語(yǔ)文必修上冊(cè)《登泰山記》文言文對(duì)比閱讀訓(xùn)練(含答案)
- 2025年金蝶AI蒼穹平臺(tái)新一代企業(yè)級(jí)AI平臺(tái)報(bào)告-
- 2025中國(guó)機(jī)械工業(yè)集團(tuán)有限公司(國(guó)機(jī)集團(tuán))社會(huì)招聘19人筆試參考題庫(kù)附答案
- 淺析煤礦巷道快速掘進(jìn)技術(shù)
- 成人留置導(dǎo)尿標(biāo)準(zhǔn)化護(hù)理與并發(fā)癥防控指南
- 2025年勞動(dòng)關(guān)系協(xié)調(diào)師綜合評(píng)審試卷及答案
- CIM城市信息模型技術(shù)創(chuàng)新中心建設(shè)實(shí)施方案
- 班級(jí)互動(dòng)小游戲-課件共30張課件-小學(xué)生主題班會(huì)版
- 2025至2030全球及中國(guó)智慧機(jī)場(chǎng)建設(shè)行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢(xún)研究報(bào)告
- 2025年二級(jí)造價(jià)師《土建工程實(shí)務(wù)》真題卷(附解析)
- 智慧農(nóng)業(yè)管理中的信息安全對(duì)策
評(píng)論
0/150
提交評(píng)論