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