亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

解決Vue + Echarts 使用markLine標線(precision精度問題)

瀏覽:2日期:2023-01-02 18:22:04

在VUE實例中使用Echarts

安裝echarts依賴:

npm install echarts -s

編寫代碼:

引入echarts對象:

鑒于準備工作中已經通過npm安裝了echarts依賴,所以可以直接在vue文件中使用代碼import echarts from “echarts”引入echarts對象:

<script> import echarts from ’echarts/lib/echarts’</script>

注意:只引入了echarts還不能直接使用markLine(作為前端菜鳥爬坑了好久?)

引入markLine對象:

<script> import echarts from ’echarts/lib/echarts’ import ’echarts/lib/component/markLine’</script>

以下是我畫圖的所有echarts依賴:

import echarts from ’echarts/lib/echarts’ import ’echarts/lib/chart/candlestick’ import ’echarts/lib/chart/bar’ import ’echarts/lib/component/legend’ import ’echarts/lib/component/title’ import ’echarts/lib/component/markLine’

markLine終于有用了?

我的代碼:

這是我的markLine配置

let price = [13.9, 14.95, 16];markLine: { symbol: ’none’, silent: true, data: [ {yAxis: price[0]}, {yAxis: price[1]}, {yAxis: price[2]} ], lineStyle: { show: true, color: ’#808C94’, type: ’dashed’ }}

markLine效果:

解決Vue + Echarts 使用markLine標線(precision精度問題)

然而 Echarts 的 series[i]-bar.markLine.precision 配置項不太厚道

Echarts文檔中的描述:

series[i]-bar.markLine.precision number

[ default: 2 ]

標線數值的精度,在顯示平均值線的時候有用。

根據上圖展示,并沒有我想要的精度。

——注:13.9應該顯示13.90,16應該顯示16.00

precision配置默認為2

怎么辦?填坑!

仔細翻看Echarts文檔發現了一個配置:

series[i]-bar.markLine.label.formatter

里面有個回調函數,而且與axisLabel.formatter不太一樣

修改配置一:

請確保你的Number.toFixed(2)是滿足要求的

markLine: { symbol: ’none’, silent: true, data: [ {yAxis: price[0]}, {yAxis: price[1]}, {yAxis: price[2]} ], lineStyle: { show: true, color: ’#808C94’, type: ’dashed’ }, // 先讓markLine精確到3,默認為2 precision: 3, label: { formatter: function(value) { // 確保你的Number.toFixed(2)是滿足要求的 return value.value.toFixed(2); } }}

修改配置二:

markLine: { symbol: ’none’, silent: true, data: [ {yAxis: price[0]}, {yAxis: price[1]}, {yAxis: price[2]} ], lineStyle: { show: true, color: ’#808C94’, type: ’dashed’ }, // 先讓markLine精確到3,默認為2 precision: 3, label: { // 沒有寫通用代碼了,針對性解決一下當前問題 formatter: function(value) { // 這里的value 是一個label對象,使用value.value獲取到真正的值 let strVal = value.value.toString(); let splitStr = strVal.split(’.’); let tailStr = splitStr[1]; if (tailStr == null) { return value.value.toString() + ’.00’; } // 0.995 ~ 0.999 = 1 if (tailStr >= 995) { return (parseInt(splitStr[0]) + 1).toString() + ’.00’; } if (tailStr.length >= 3) { let lastStr = tailStr.substr(2, 1); // 解決toFixed(2)方法四舍五入無效 if (lastStr >= 5) { // 數值+101有些取巧,但能解決問題... tailStr = (parseInt(tailStr.substr(0, 2)) + 101).toString().substr(1, 2); return splitStr[0] + ’.’ + tailStr; } else { return splitStr[0] + ’.’ + tailStr.substr(0, 2); } } else if (tailStr.length === 1) { return value.value.toString() + ’0’; } else { return value.value.toString(); } } }}

鬼知道Number.toFixed(2)為什么保留兩位小數時并沒有四舍五入,就寫了段惡心的代碼,個人能力有限?

修改后效果:

解決Vue + Echarts 使用markLine標線(precision精度問題)

以上這篇解決Vue + Echarts 使用markLine標線(precision精度問題)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
主站蜘蛛池模板: 激情丝袜欧美专区在线观看 | 欧美一区二区在线视频 | 久久黄色一级片 | 国产高清在线视频 | 亚洲黄色在线视频 | 丰满女人毛片免费播放 | 91免费在线视频 | 女人被狂躁的免费视频网站软件 | 国产高清视频一区二区 | 亚欧在线一线 | 久久国产成人精品国产成人亚洲 | 欧美黄色成人 | 72种姿势欧美久久久久大黄蕉 | 国产在线精品一区二区三区不卡 | 高清欧美不卡一区二区三区 | 欧洲最暴性xxxⅹ | 国产一区二区在线观看麻豆 | 91小视频在线观看免费版高清 | 伊人影院综合 | a一级黄 | 天天综合网天天综合色 | 日韩在线国产精品 | 精品免费视频 | 超级碰碰碰免费视频播放 | hh99me福利毛片 | 免费国产人做人视频在线观看 | 天堂mv亚洲mv在线播放9蜜 | 国产主播专区 | 日韩网站免费 | 国产香蕉国产精品偷在线观看 | 高清国产精品久久久久 | 一区二区免费视频观看 | 成人无遮挡免费网站视频在线观看 | 岛国毛片一级一级特级毛片 | 2021久久精品免费观看 | 国产黄频在线观看高清免费 | 国产成人精品日本亚洲专区6 | 国产一区二区三区四区小蝌蚪 | 高h喷水荡肉爽文np欲 | 91久久久久久久 | 亚洲欧洲一区二区三区在线 |