原始需求:需要在環(huán)形圖中心固定顯示在線率。
echarts環(huán)形圖默認可以在環(huán)形中心顯示各種百分比率,鼠標浮動到哪里就顯示哪個的百分比,但是不符合項目需求。項目需要固定只顯示在線率。則需要自定義顯示環(huán)形圖中心的百分比。
實現(xiàn)方式:在 echarts 配置中增加 graphic項,text 屬性設(shè)置為計算得到的百分比即可。
其中,百分比計算方式:let fonline = online * 100 / total;? ?fonline =?fonline.toFixed(2);? ?看似很簡單,但是得到的結(jié)果卻總是不能與 echarts 的結(jié)果保持一致。

在線率顯示
如上圖,中間是我自己算的結(jié)果,右下角是鼠標浮動顯示的 tooltip,也就是 echarts 計算的結(jié)果。
通過實驗觀察,echarts 不僅僅取小數(shù)點后兩位那么簡單,當小數(shù)后面存在零時,則要把零去掉,也就是出現(xiàn)這樣幾種情況:
1、出現(xiàn)多于2位的小數(shù),則四舍五入保留小數(shù)點后2位,如 87.34%。
2、少于2位的小數(shù),則根據(jù)實際情況得到值,不能出現(xiàn)末尾是 0 的情況,如 85.5%,85%。
所以想到使用正則表達式去掉多余的小數(shù)點和零,先將 fonline 轉(zhuǎn)換為字符串,然后正則替換。
let exp = /\.{0,1}0+$/g;
fonline = fonline.replace(exp, "");
結(jié)果與 echarts 完全相同。