這篇文章將為大家詳細(xì)講解有關(guān)利用ECharts怎么實(shí)現(xiàn)一個(gè)狀態(tài)區(qū)間圖,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
目前創(chuàng)新互聯(lián)建站已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、綿陽(yáng)服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、漳州網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。需求背景
假如有如下圖所示的圖表需要顯示多個(gè)網(wǎng)口在一段時(shí)間內(nèi)的多個(gè)狀態(tài):y軸用于展示各網(wǎng)口,x軸用于展示時(shí)間(分鐘),使用條形圖的不同顏色來表示不同時(shí)間區(qū)間段的狀態(tài),使用深藍(lán)、淺藍(lán)、橙色、紅色分別代表正常、繁忙、故障、離線四種狀態(tài)。以WAN0為例,圖中則表示了0~10分鐘為正常,10~25分鐘為繁忙,25~45分鐘為故障,45~60分鐘為離線。
根據(jù)此圖,很容易想到可以用條形圖試試。但后來發(fā)現(xiàn),如果用堆疊條形圖,則每種狀態(tài)在每一個(gè)網(wǎng)口對(duì)應(yīng)的圖形中只能出現(xiàn)一次,這不能實(shí)現(xiàn)需求。于是繼續(xù)查閱echart官網(wǎng)示例,終于在自定義類型圖表中找到了一個(gè)相似的示例,地址
通過研究示例代碼并進(jìn)行一番改造,終于實(shí)現(xiàn)了上述需求。
在實(shí)現(xiàn)的過程中遇到了一個(gè)小問題,那就是使用自定義圖表實(shí)現(xiàn)chart之后,圖例不好處理。通過查看條形圖的示例,找到了一種顯示圖例的方法,那就是使用空的條形圖來顯示圖例,因?yàn)樵?strong>series里面配置了條形圖并配置name后,echart會(huì)自動(dòng)根據(jù)name的值去legend的配置中匹配對(duì)應(yīng)的圖例名字并顯示。
完整代碼如下,保存于本地之后再自己去echart官網(wǎng)下載庫(kù)文件(完整版)之后即可運(yùn)行:
<!doctype html> <html> <head> <meta charset="utf-8"> </head> <body> <div id="chart-box" ></div> <script src="./echarts.min.js"></script> <script> // 初始化echart var chart = echarts.init(document.getElementById('chart-box')); // 各狀態(tài)的顏色 var colors = ['#2f4554', '#61a0a8', '#d48265', '#c23531']; // 四種狀態(tài) var state = ['正常', '繁忙', '故障', '離線']; // echart配置 var opt = { color: colors, tooltip: { formatter: function (params) { return params.name + ':' + params.value[1] + '~' + params.value[2]; } }, legend: { data: state, bottom: '1%', selectedMode: false, // 圖例設(shè)為不可點(diǎn)擊 textStyle: { color: '#000' } }, grid: { left: '3%', right: '3%', top: '1%', bottom: '10%', containLabel: true }, xAxis: { min: 0 // x軸零刻度對(duì)應(yīng)的實(shí)際值 }, yAxis: { data: ['WAN0', 'WAN1'] }, series: [ // 用空bar來顯示四個(gè)圖例 {name: state[0], type: 'bar', data: []}, {name: state[1], type: 'bar', data: []}, {name: state[2], type: 'bar', data: []}, {name: state[3], type: 'bar', data: []}, { type: 'custom', renderItem: function (params, api) { var categoryIndex = api.value(0); var start = api.coord([api.value(1), categoryIndex]); var end = api.coord([api.value(2), categoryIndex]); var height = 24; return { type: 'rect', shape: echarts.graphic.clipRectByRect({ x: start[0], y: start[1] - height / 2, width: end[0] - start[0], height: height }, { x: params.coordSys.x, y: params.coordSys.y, width: params.coordSys.width, height: params.coordSys.height }), style: api.style() }; }, encode: { x: [1, 2], y: 0 }, data: [ { itemStyle: { normal: { color: colors[0] } }, name: '正常', value: [0, 0, 10] }, { itemStyle: { normal: { color: colors[1] } }, name: '繁忙', value: [0, 10, 25] }, { itemStyle: { normal: { color: colors[2] } }, name: '故障', value: [0, 25, 45] }, { itemStyle: { normal: { color: colors[3] } }, name: '離線', value: [0, 45, 60] }, { itemStyle: { normal: { color: colors[0] } }, name: '正常', value: [1, 0, 15] }, { itemStyle: { normal: { color: colors[1] } }, name: '繁忙', value: [1, 15, 20] }, { itemStyle: { normal: { color: colors[2] } }, name: '故障', value: [1, 20, 35] }, { itemStyle: { normal: { color: colors[3] } }, name: '離線', value: [1, 35, 40] }, { itemStyle: { normal: { color: colors[0] } }, name: '正常', value: [1, 40, 45] }, { itemStyle: { normal: { color: colors[3] } }, name: '離線', value: [1, 45, 60] } ] } ] }; chart.setOption(opt); </script> </body> </html>
對(duì)于自定義圖表的data字段里數(shù)據(jù)項(xiàng):
{ itemStyle: { normal: { color: colors[0] } }, name: '正常', value: [0, 0, 10] }
itemStyle: 所渲染的矩形的樣式
name: 該矩形的狀態(tài)名
value: 第0項(xiàng)代表類別標(biāo)識(shí),例如0就代表WAN0的,1就是WAN1的;第1和第2項(xiàng)代表該矩形區(qū)域?qū)?yīng)的x坐標(biāo)范圍開始于0,結(jié)束于1。
關(guān)于利用ECharts怎么實(shí)現(xiàn)一個(gè)狀態(tài)區(qū)間圖就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
本文題目:利用ECharts怎么實(shí)現(xiàn)一個(gè)狀態(tài)區(qū)間圖-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://m.rwnh.cn/article36/ddsesg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、網(wǎng)站收錄、軟件開發(fā)、商城網(wǎng)站、靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容