<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
開發某款app時,產品給的UI原型圖上有個分為三段的圓環圖,本來以為使用echarts應該會很好做的,主要考慮行動端echarts的相容問題就好了,但是實際操作後發現還是沒法做到完美的還原,最終找了很多類似的案例,加上自己的一些調整實現了.
第一眼看的時候以為用echarts裡的餅圖做一些修改可以達到,但是效果都不太好,首先是每段弧段的邊緣有一個圓角的處理,其次是弧度的寬度是不同,灰色最細,紅色次之,綠色是最寬的.
第二時間又看到了一些圓環進度條的範例
本來以為這種圖應該可以實現了,但去看了範例的程式碼發現這種圖是echarts裡的pie元件的一個疊加,一般疊加一次,有兩個區域效果還算可以,但是3個區域的效果在不設定圓弧的寬度時還算可以接受,但是設定了寬度後總會有一些疊加後超出不太美觀的問題.
最終在玫瑰圖的網站上找到一個比較複雜的實現,通過修改各項設定基本完美的使用ehcarts實現了這個圖形. 首先是echarts的一個option的設定程式碼,為了方便將series與option做了一個分離
const colorDataHandle = (data, total, width = 375) => { let num = 0 let option = { angleAxis: { axisLine: { show: false, }, axisLabel: { show: false, }, splitLine: { show: false, }, axisTick: { show: false, }, min: 'dataMin', max: 'dataMax', startAngle: 135, }, radiusAxis: { type: 'category', axisLine: { show: false, }, axisTick: { show: false, }, axisLabel: { show: false, }, }, polar: { radius: '95%' }, series: [] } // option是對傳入的資料的一個處理 const options = data.map((item, index) => { num += item const a = { type: 'bar', data: [0, 0, 0, num], coordinateSystem: 'polar', z: 9999 - index, roundCap: true, color: colors[index], barGap: '-100%', // barWidth: '30%', itemStyle: { // 控制弧的寬,弧的寬的控制並沒有做太多的情況判斷,簡單的區分了一下 borderWidth: index === 0 ? 4 : index === 1 ? 2 : 0, // shadowBlur: 5, // color: 'transparent', borderColor: colors[index], shadowColor: colors[index], }, } return a }) option.series = options return option }
然後是對3種顏色區域的一個處理
const colors = [ { type: 'linear', x: 0, y: 0, x2: 0, y2: 1, colorStops: [ { offset: 0, color: '#1DBC3F', // 0% 處的顏色 }, { offset: 1, color: '#1DBC3F', // 100% 處的顏色 }, ], }, { type: 'linear', x: 0, y: 0, x2: 0, y2: 1, colorStops: [ { offset: 0, color: '#CB3939', // 0% 處的顏色 }, { offset: 1, color: '#CB3939', // 100% 處的顏色 }, ], }, { type: 'linear', x: 0, y: 0, x2: 0, y2: 1, colorStops: [ { offset: 0, color: '#C0C0C0', // 0% 處的顏色 }, { offset: 1, color: '#C0C0C0', // 100% 處的顏色 }, ], }, ];
這裡是靈活使用了echarts type為linear的元件,具體的一個設定項是怎麼實現我並沒有深入探究.
最終實現的一個效果圖在真機上的展示
既保證了每段弧的首尾的圓角的問題,也實現了每段弧寬的增加
echarts這個庫確實博大進深,同時對一些沒有做過的需求的評估需要謹慎再謹慎,我看到這個圖形時覺得用echarts應該就ok了,但實際在開發的過程中,坑還是很多,同樣機會也在不經意中就出現了,機會還是留給有準備的人的,如果想著圖形太複雜隨隨便便用個環形圖就去實現可能在頁面的呈現上也沒有這麼好的效果了.
到此這篇關於利用Echarts如何實現多段圓環圖的文章就介紹到這了,更多相關Echarts多段圓環圖內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45