使用Echarts繪制動(dòng)態(tài)排序折線圖
在數(shù)據(jù)可視化領(lǐng)域,折線圖是表現(xiàn)時(shí)間序列數(shù)據(jù)變化的一種常見(jiàn)圖表類(lèi)型。Echarts,作為一個(gè)使用廣泛的JavaScript圖表庫(kù),提供了創(chuàng)建動(dòng)態(tài)排序折線圖的強(qiáng)大功能。動(dòng)態(tài)排序折線圖能夠展現(xiàn)多個(gè)序列隨時(shí)間的動(dòng)態(tài)變化并且相互比較,非常適用于展示多個(gè)維度隨時(shí)間的變化趨勢(shì)。本文將首先介紹如何使用Echarts創(chuàng)建此類(lèi)圖表,并在此基礎(chǔ)上展開(kāi)Echarts折線圖漸變功能的使用。
動(dòng)態(tài)排序折線圖的創(chuàng)建過(guò)程
在展現(xiàn)多個(gè)國(guó)家或地區(qū)隨時(shí)間變化的數(shù)據(jù)時(shí),動(dòng)態(tài)排序折線圖是一種十分直觀的表現(xiàn)形式。以下是創(chuàng)建一個(gè)以國(guó)家收入為例的排序折線圖的步驟和代碼。
初始數(shù)據(jù)獲取
首先通過(guò)異步加載的方式獲取用于展示的原始數(shù)據(jù),這里假設(shè)從一個(gè)JSON文件中通過(guò)GET請(qǐng)求取得數(shù)據(jù)。
$.get(ROOT_PATH + '/data/asset/data/life-expectancy-table.json', function (_rawData) { run(_rawData); });
數(shù)據(jù)集的處理
定義一個(gè)函數(shù)run
,將獲取到的原始數(shù)據(jù)作為參數(shù)。在run
函數(shù)中,首先創(chuàng)建一個(gè)國(guó)家或地區(qū)的列表。這些將是圖表中要顯示的維度。
const countries = [ 'Finland', 'France', 'Germany', 'Iceland', 'Norway', 'Poland', 'Russia', 'United Kingdom' ];
隨后為每個(gè)國(guó)家創(chuàng)建一個(gè)過(guò)濾后的數(shù)據(jù)集,并推送到datasetWithFilters
數(shù)組中。每個(gè)數(shù)據(jù)集包含了過(guò)濾條件以及一些其他必要的配置。
const datasetWithFilters = []; echarts.util.each(countries, function (country) { var datasetId = 'dataset_' + country; datasetWithFilters.push({ id: datasetId, fromDatasetId: 'dataset_raw', transform: { type: 'filter', config: { and: [ { dimension: 'Year', gte: 1950 }, { dimension: 'Country', '=': country } ] } } }); });
系列的配置
對(duì)于每一個(gè)國(guó)家或地區(qū)的系列配置,包括線的類(lèi)型(此處為折線圖),數(shù)據(jù)集datasetId
以及一些針對(duì)特定系列的樣式設(shè)置。
const seriesList = []; echarts.util.each(countries, function (country) { var datasetId = 'dataset_' + country; seriesList.push({ // 系列配置... }); });
Echarts配置項(xiàng)設(shè)置
完成了數(shù)據(jù)集處理和系列配置之后,就需要設(shè)置Echarts的配置項(xiàng)option
。option
對(duì)象包含了Echarts圖表所需的全部配置,包括標(biāo)題、工具提示、坐標(biāo)軸、網(wǎng)格和系列。
option = { // Echarts配置項(xiàng)... };
最后,將配置項(xiàng)option
設(shè)置到Echarts實(shí)例myChart
上。
myChart.setOption(option);
折線圖漸變效果的使用
在以上動(dòng)態(tài)排序折線圖的基礎(chǔ)上,Echarts還提供了豐富的樣式設(shè)置,包括給折線圖添加漸變效果,這樣可以使圖表更加美觀且具有立體感。
設(shè)置漸變色
在Echarts中設(shè)置漸變色可以通過(guò)定義一個(gè)線性漸變對(duì)象來(lái)實(shí)現(xiàn)。該對(duì)象可以在系列的areaStyle
或者itemStyle
屬性中指定。
const gradient = new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ offset: 0, color: 'rgba(255,0,0,1)' // 0% 處的顏色 }, { offset: 1, color: 'rgba(255,0,0,0)' // 100% 處的顏色 }]);
此處創(chuàng)建了一個(gè)從紅色到透明的垂直漸變對(duì)象gradient
。
應(yīng)用漸變效果
將漸變對(duì)象應(yīng)用到圖表的系列配置中。
seriesList.push({ // 系列其他配置... areaStyle: { normal: { color: gradient // 使用漸變色 } } });
在seriesList
數(shù)組里推送系列時(shí),為areaStyle
屬性添加上述漸變對(duì)象,從而使得折線圖區(qū)域呈現(xiàn)出漸變效果。
完整的Echarts配置項(xiàng)示例
以下是具有漸變效果的完整Echarts配置項(xiàng)的示例。
option = { // 其他配置項(xiàng)... series: seriesList.map(function (series) { return echarts.util.extend(series, { areaStyle: { normal: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ offset: 0, color: 'rgba(255,0,0,1)' }, { offset: 1, color: 'rgba(255,0,0,0)' }]) } } }); }) };
結(jié)論
折線圖是展示時(shí)間序列數(shù)據(jù)變化的重要工具。當(dāng)涵蓋動(dòng)態(tài)排序及視覺(jué)效果時(shí),它不僅提供了信息顯示的功能,還能提升用戶的視覺(jué)體驗(yàn)。Echarts庫(kù)為開(kāi)發(fā)者提供了創(chuàng)建這樣的圖表的大量配置選項(xiàng)和樣式自定義能力。漸變效果的添加,能有效吸引觀眾的注意力,使得數(shù)據(jù)展現(xiàn)更具表現(xiàn)力和美感。通過(guò)合理的運(yùn)用Echarts的功能,可以打造出既美觀又具有實(shí)用性的數(shù)據(jù)可視化圖表。
到此這篇關(guān)于使用Echarts繪制動(dòng)態(tài)排序折線圖的文章就介紹到這了,更多相關(guān)Echarts折線圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS實(shí)現(xiàn)圖片無(wú)間斷滾動(dòng)代碼匯總
這篇文章主要介紹了JS實(shí)現(xiàn)圖片無(wú)間斷滾動(dòng)代碼匯總,非常實(shí)用的特效代碼,需要的朋友可以參考下2014-07-07bootstrap實(shí)現(xiàn)tab選項(xiàng)卡切換
這篇文章主要為大家詳細(xì)介紹了bootstrap實(shí)現(xiàn)tab選項(xiàng)卡切換,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08延時(shí)重復(fù)執(zhí)行函數(shù) lLoopRun.js
延時(shí)重復(fù)執(zhí)行函數(shù) lLoopRun.js...2007-05-05Angular+Bootstrap+Spring Boot實(shí)現(xiàn)分頁(yè)功能實(shí)例代碼
這篇文章主要介紹了Angular+Bootstrap+Spring Boot實(shí)現(xiàn)分頁(yè)功能實(shí)例代碼,需要的朋友可以參考下2017-07-07JS?中數(shù)組的增刪改查和對(duì)象的增刪改查實(shí)例詳解
這篇文章主要介紹了JS?中數(shù)組的增刪改查和對(duì)象的增刪改查實(shí)例詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07JS快速實(shí)現(xiàn)簡(jiǎn)單計(jì)算器
這篇文章主要為大家詳細(xì)介紹了JS快速實(shí)現(xiàn)簡(jiǎn)單計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04javascript currying返回函數(shù)的函數(shù)
currying函數(shù)是一種返回函數(shù)的函數(shù),是閉包最偉大的應(yīng)用之一。有關(guān)閉包更詳細(xì)的定義可參見(jiàn)這里與這里。如下currying函數(shù)的一種定義。2009-11-115個(gè)書(shū)寫(xiě)JavaScript代碼的壞習(xí)慣,看看你中槍了沒(méi)?
這篇文章主要介紹了5個(gè)書(shū)寫(xiě)JavaScript代碼的壞習(xí)慣,看看你中槍了沒(méi)?,本文指出了你沒(méi)有使用命名空間、變量定義的東一個(gè)西一個(gè)、Javascript的變量范圍、Javascript的面向?qū)ο?、new關(guān)鍵字等問(wèn)題,需要的朋友可以參考下2014-11-11