摘要:另外,需要將雷達(dá)圖的半徑設(shè)置和極坐標(biāo)的半徑設(shè)置設(shè)為相同,以便他們有相同的放縮比例。極坐標(biāo)的徑向軸的分隔個(gè)數(shù)和雷達(dá)圖的指示器軸的分割個(gè)數(shù)必須相同。
最近做的項(xiàng)目其中一個(gè)功能是畫雷達(dá)圖,鼠標(biāo)滑過雷達(dá)圖的拐點(diǎn),展示該維相關(guān)數(shù)據(jù),并且需要顯示雷達(dá)圖的刻度。
但是我發(fā)現(xiàn)單純的雷達(dá)圖似乎沒辦法展示一維數(shù)據(jù)。
我總結(jié)了一下,關(guān)于畫雷達(dá)圖,我遇到的難點(diǎn)有三個(gè):
(1)如何顯示刻度。
(2)如何判斷滑過的是拐點(diǎn)。
(3)如何找出拐點(diǎn)對(duì)應(yīng)的該維數(shù)據(jù)。
下面總結(jié)問題的解決辦法:問題(1):
echarts的版本從4.x以后不再提供雷達(dá)圖的刻度標(biāo)簽屬性了,但3.x版本是有刻度這個(gè)配置屬性的,radar.axisLabel。所以要想顯示雷達(dá)圖的刻度,可以將echarts的版本換回3.x版本。但是對(duì)于我的項(xiàng)目來說,這個(gè)辦法不太可行,因?yàn)槲业捻?xiàng)目中有很多的圖表是基于4.x版本繪制的,如果改回3.x版本,要改動(dòng)的東西就太多了,牽一發(fā)而動(dòng)全身。
所以我必須想別的辦法。我考慮用極坐標(biāo)做雷達(dá)圖的底圖,將極坐標(biāo)的刻度作為雷達(dá)圖的刻度,關(guān)鍵步驟如下:
1、我的雷達(dá)圖的顯示數(shù)值的范圍是1~10,顯示的刻度間隔是2,因此我用極坐標(biāo)的徑向軸radiusAxis來顯示刻度間隔是2的刻度。
2、另外,需要將雷達(dá)圖的半徑設(shè)置radar.radius和極坐標(biāo)的半徑設(shè)置polar.radius設(shè)為相同,以便他們有相同的放縮比例。
3、極坐標(biāo)的徑向軸的分隔個(gè)數(shù)radiusAxis.splitNumber和雷達(dá)圖的指示器軸的分割個(gè)數(shù)radar.splitNumber必須相同。
4、極坐標(biāo)的中心點(diǎn)polar.center和雷達(dá)圖的中心點(diǎn)radar.center也必須相同。
var dimensionData = [ {name: "覆蓋", max: 10}, {name: "干擾", max: 10}, {name: "感知", max: 10}, {name: "故障", max: 10}, {name: "容量", max: 10} ]; data = [7.9, 3, 3, 5.11, 4.4]; var radius = "60%"; var radarOption = { radar:{ center:["50%", "50%"], startAngle:90, indicator:dimensionData, splitNumber: 5, radius: radius, shape: "circle", name: { show:true, textStyle: { color: "#ffffff", fontSize: 12 } }, splitArea: { areaStyle: { color: ["rgba(0, 21, 102, 0.4)"], }, }, splitLine: { show:true, lineStyle: { color: ["rgba(238,238,238, 0.2)"] } }, axisLine: { lineStyle: { color: ["rgba(238,238,238, 0.2)"] } } }, //極坐標(biāo)系 polar: { radius: radius, }, angleAxis: { axisLine: { lineStyle: { color: "rgba(238,238,238, 0.2)" } }, }, radiusAxis: { //用注釋掉的這個(gè)用法可以動(dòng)態(tài)控制刻度的個(gè)數(shù),但有時(shí)候會(huì)出現(xiàn)刻度標(biāo)簽顯示不全的現(xiàn)象 // type: "value", // min: 0, // max: 10, // interval: 2 type: "category", axisLabel:{ show:true, interval: 0, fontSize:9, color:"rgba(255, 255, 255, 0.5)", }, axisTick:{ show:true, inside:true, }, axisLine:{ show:true, lineStyle:{ color:"rgba(238,238,238, 0.2)" } }, splitLine:{ show:false, lineStyle:{ color:"rgba(238,238,238, 0.2)" } }, data:["2", "4", "6", "8", "10"] }, tooltip: { show:false, trigger:"item" }, series:[ { type: "radar", radarIndex:0, data:[{ value:data }], symbol: "circle", symbolSize: 6, itemStyle: { normal: { color: "rgba(255, 255,255, 1)", borderColor: "rgba(255, 179, 0, 1)", borderWidth: 1, } }, areaStyle: { normal: { color: "rgba(255, 179, 0, 0.8)", } }, lineStyle: { width: 2, color: "rgba(255, 179, 0, 1)" } } ] }
問題(2):
點(diǎn)擊雷達(dá)圖的拐點(diǎn),顯示相關(guān)數(shù)據(jù)。我一開始想法是用tooltip來實(shí)現(xiàn),但是我發(fā)現(xiàn)tooltip無法實(shí)現(xiàn)。原因有兩個(gè):一是tooltip的觸發(fā)條件只能為trigger:"item",trigger:"axis"不能用。二是設(shè)置trigger:"item"之后,鼠標(biāo)滑過雷達(dá)圖的任何區(qū)域,tooltip都會(huì)展示所有維度的數(shù)據(jù),沒有辦法實(shí)現(xiàn)滑過拐點(diǎn),才展示數(shù)據(jù)和只展示該維數(shù)據(jù)。
所以我考慮用echarts提供API的鼠標(biāo)事件來實(shí)現(xiàn)效果,我用的是mouseover事件和mouseout事件。我想要通過事件傳遞的參數(shù)來判斷鼠標(biāo)滑過的是不是拐點(diǎn)。我先去查看了echarts官方文檔中提供的參數(shù),沒有什么明顯的參數(shù)可以讓我判斷出是不是鼠標(biāo)滑過的是不是拐點(diǎn)。
?但是我的組長堅(jiān)信,鼠標(biāo)滑過不同的地方,一定傳的參數(shù)是有某個(gè)地方不同的。因此在堅(jiān)持不懈和仔細(xì)的查看事件參數(shù)后,終于找到了。params.event.target.__dimIdx這個(gè)參數(shù),在滑過拐點(diǎn)時(shí),顯示的是該拐點(diǎn)的維度下標(biāo),滑過其他區(qū)域時(shí),顯示的是undefied。因此可以用這個(gè)參數(shù)來判斷鼠標(biāo)滑過的是不是拐點(diǎn)。
this.radarChart.on("mouseover", function(params){ var isSelectedDot = params.event.target.__dimIdx; if(isSelectedDot == undefined) return; //做鼠標(biāo)滑過拐點(diǎn)的操作 });
問題(3):
拐點(diǎn)找到了,如何找出拐點(diǎn)對(duì)應(yīng)的該維數(shù)據(jù)?在echarts4.x中,事件所得到的數(shù)據(jù),是所有維度的數(shù)據(jù),而不是多帶帶某個(gè)維度的數(shù)據(jù),如下圖:
但是此時(shí)我已經(jīng)獲取到拐點(diǎn)的維度下標(biāo)了,因此根據(jù)下標(biāo)就可以獲取到該維度的數(shù)據(jù)了。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/106225.html
摘要:另外,需要將雷達(dá)圖的半徑設(shè)置和極坐標(biāo)的半徑設(shè)置設(shè)為相同,以便他們有相同的放縮比例。極坐標(biāo)的徑向軸的分隔個(gè)數(shù)和雷達(dá)圖的指示器軸的分割個(gè)數(shù)必須相同。 最近做的項(xiàng)目其中一個(gè)功能是畫雷達(dá)圖,鼠標(biāo)滑過雷達(dá)圖的拐點(diǎn),展示該維相關(guān)數(shù)據(jù),并且需要顯示雷達(dá)圖的刻度。 但是我發(fā)現(xiàn)單純的雷達(dá)圖似乎沒辦法展示一維數(shù)據(jù)。 我總結(jié)了一下,關(guān)于畫雷達(dá)圖,我遇到的難點(diǎn)有三個(gè): (1)如何顯示刻度。 (2)如何判斷滑過...
摘要:標(biāo)題我就覺得起的很變態(tài)。閑話不多說,先說出現(xiàn)的背景吧。然后這個(gè)機(jī)子傳過來的數(shù)據(jù)就可能來?xiàng)l。如果用最新的來做,但是數(shù)據(jù)太小不足以畫出圖來,但是如果數(shù)據(jù)太大傳輸也是一個(gè)問題?! mmmmm.....標(biāo)題我就覺得起的很變態(tài)。閑話不多說,先說出現(xiàn)的背景吧~~。 因?yàn)闃I(yè)務(wù)上的需求,跟一個(gè)硬件對(duì)接,要做大屏展示大廳客流熱力圖分布(背景圖是客戶那邊給的)。然后這個(gè)機(jī)子傳過來的數(shù)據(jù)就可能20來?xiàng)l。如果...
摘要:該工具解決了哪些業(yè)務(wù)問題產(chǎn)品雷達(dá)圖可以直觀地表示產(chǎn)品組合和產(chǎn)品決策制定的眾多屬性。因此,快速瀏覽雷達(dá)圖將顯示每個(gè)產(chǎn)品的潛在關(guān)注領(lǐng)域。下圖的雷達(dá)圖顯示,產(chǎn)品在客戶價(jià)值和創(chuàng)新的理想特征方面優(yōu)于產(chǎn)品和。 在文章《如何細(xì)分市場?這篇文章就夠了》中用到了雷達(dá)圖,本篇內(nèi)容就來講講什么是產(chǎn)品雷達(dá)圖,以...
小編寫這篇文章的主要方法,就是介紹關(guān)于Python pyecharts的一些相關(guān)技巧,包括教給大家怎么去使用Python pyecharts繪制雷達(dá)圖。其實(shí),說起來還是挺麻煩的,那么,我們要怎么去繪制雷達(dá)圖呢?有沒有什么比較好用的方法呢?下面給大家詳細(xì)解答下?! ±走_(dá)圖 雷達(dá)圖是以從同一點(diǎn)開始的軸上表示的三個(gè)或更多個(gè)定量變量的二維圖表的形式顯示多變量數(shù)據(jù)的圖形方法。軸的相對(duì)位置和角度通常是無...
閱讀 1715·2021-11-18 10:02
閱讀 2229·2021-11-15 11:38
閱讀 2679·2019-08-30 15:52
閱讀 2203·2019-08-29 14:04
閱讀 3241·2019-08-29 12:29
閱讀 2095·2019-08-26 11:44
閱讀 1005·2019-08-26 10:28
閱讀 842·2019-08-23 18:37