最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ECharts框架Sunburst拖拽功能實現(xiàn)方案詳解

 更新時間:2022年12月23日 11:34:12   作者:黎燃  
這篇文章主要為大家介紹了ECharts框架Sunburst拖拽功能實現(xiàn)方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

unburst

要創(chuàng)建日出圖表,需要在系列配置項中聲明一系列類型“sunburst”,并在樹結構中聲明其數(shù)據(jù):

var option = {
    series: {
        type: 'sunburst',
        data: [{
            name: 'A',
            value: 10,
            children: [{
                value: 3,
                name: 'Aa'
            }, {
                value: 5,
                name: 'Ab'
            }]
        }, {
            name: 'B',
            children: [{
                name: 'Ba',
                value: 4
            }, {
                name: 'Bb',
                value: 2
            }]
        }, {
            name: 'C',
            value: 3
        }]
    }
};

它由多層環(huán)圖組成。在數(shù)據(jù)結構方面,內圈是外圈的父節(jié)點。因此,它不僅可以像餅圖一樣表示部分和整體的比例,還可以像矩形樹形圖一樣表示層次關系。

默認情況下,使用全局調色板指定最內層的顏色,其他層的顏色與其父元素相同。在日出圖表中,扇區(qū)塊的顏色可以通過以下三種方式設置: 串聯(lián)。data每個扇區(qū)塊的樣式在itemStyle中設置; 在系列中。levels設置itemStyle中每個層的樣式; 在系列中,整個日出圖表的樣式設置為itemStyle。 以上三者的優(yōu)先級從高到低,即系列。數(shù)據(jù)已配置itemStyle的扇區(qū)塊將覆蓋系列。級別ItemStyle和ItemStyle的系列設置。 接下來,我們將整體顏色設置為灰色“#aaa”,最里面的顏色設置為藍色“藍色”,Aa和B顏色設置為紅色“紅色”。`在這里插入代碼片

   type: 'sunburst',
        data: [{
            name: 'A',
            value: 10,
            children: [{
                value: 3,
                name: 'Aa',
                itemStyle: {
                    color: 'red'
                }
            }, {
                value: 5,
                name: 'Ab'
            }]
        }, {
            name: 'B',
            children: [{
                name: 'Ba',
                value: 4
            }, {
                name: 'Bb',
                value: 2
            }],
            itemStyle: {
                color: 'red'
            }
        }, {
            name: 'C',
            value: 3
        }],
        itemStyle: {
            color: '#aaa'
        },

日出圖是一個層次結構。為了便于配置相同的圖層樣式,我們提供了級別配置項。它是一個數(shù)組,其中項0表示向下鉆取數(shù)據(jù)后返回到上層的圖形,每個后續(xù)項表示從圓心到外層的級別。 例如,如果我們沒有數(shù)據(jù)鉆取功能,并且希望將最里面的扇區(qū)塊的顏色設置為紅色,將文本設置為藍色,我們可以如下設置。 當鼠標移動到扇區(qū)塊時,日出圖表支持突出顯示相關數(shù)據(jù)塊。可以設置highlightPolicy,包括以下突出顯示方法: “descendant”(默認):突出顯示鼠標移動的扇區(qū)塊及其后代元素; “祖先”:突出顯示鼠標所在的扇區(qū)塊及其祖先元素; “self”:僅突出顯示鼠標所在的扇區(qū)塊; “無”:其他元素不會被淡化。 上面提到的“高亮顯示”將使用鼠標所在扇區(qū)塊的強調樣式;對于其他相關的扇區(qū)塊,將使用高光樣式。通過這種方式,可以很容易地實現(xiàn)突出顯示相關數(shù)據(jù)的需要。

具體而言,對于配置項:

itemStyle: {
    color: 'yellow',
    borderWidth: 2,
    emphasis: {
        color: 'red'
    },
    highlight: {
        color: 'orange'
    },
    downplay: {
        color: '#ccc'
    }
}

拖拽

convertToPixel API用于將數(shù)據(jù)轉換為像素坐標,從而可以獲得每個點的位置,并繪制這些點。myChart。在語句convertToPixel('grid',dataItem)中,第一個參數(shù)'grid'表示dataItem在網(wǎng)格組件(即直角坐標系)中轉換。所謂的“像素坐標”是指以容器的dom元素的左上角為零點的基于像素的坐標系中的坐標。 注意,這應該在第一個setOption之后完成,也就是說,只有在網(wǎng)格初始化convertToPixel('grid',dataItem)之后才能調用myChart 使用此代碼,可以拖動多個點。接下來,為每個點添加拖動響應事件:

myChart.setOption({
    graphic: echarts.util.map(data, function (dataItem, dataIndex) {
        return {
            // 'circle' 表示這個 graphic element 的類型是圓點。
            type: 'circle',
            shape: {
                // 圓點的半徑。
                r: symbolSize / 2
            },
            position: myChart.convertToPixel('grid', dataItem),
            // 這個屬性讓圓點不可見(但是不影響他響應鼠標事件)。
            invisible: true,
            // 這個屬性讓圓點可以被拖拽。
            draggable: true,
            // 把 z 值設得比較大,表示這個圓點在最上方,能覆蓋住已有的折線圖的圓點。
            z: 100,
            ondrag: echarts.util.curry(onPointDragging, dataIndex)
        };
    })
});

聲明一個 graphic component,里面有若干個 type 為 'circle' 的 graphic elements。 這里使用了 echarts.util.map 這個幫助方法,其行為和 Array.prototype.map 一樣,但是兼容 es5 以下的環(huán)境。 用 map 方法遍歷 data 的每項,為每項生成一個圓點。 用 transform 的方式對圓點進行定位。position: [x, y] 表示將圓點平移到 [x, y] 位置。 這里使用了 convertToPixel 這個 API 來得到每個圓點的位置。 此圓點的拖拽的響應事件,在拖拽過程中會不斷被觸發(fā)。下面介紹詳情。 這里使用了 echarts.util.curry 這個幫助方法,意思是生成一個與 onPointDragging 功能一樣的新的函數(shù),只不過第一個參數(shù)永遠為此時傳入的 dataIndex 的值。

myChart.setOption({
    ...,
    tooltip: {
        // 表示不使用默認的『顯示』『隱藏』觸發(fā)規(guī)則。
        triggerOn: 'none',
        formatter: function (params) {
            return 'X: ' + params.data[0].toFixed(2) + '<br>Y: ' + params.data[1].toFixed(2);
        }
    }
});

此時,完成了拖動的基本功能。但是,如果要在拖動過程中進一步實時查看拖動點的數(shù)據(jù)值更改,可以使用工具提示組件實時顯示該值。然而,Tooltip有其默認的“顯示”和“隱藏”觸發(fā)規(guī)則,這在我們的拖放場景中不適用。因此,我們還需要手動自定義工具提示的“顯示”和“隱藏”行為。

myChart.setOption({
    graphic: echarts.util.map(data, function (item, dataIndex) {
        return {
            type: 'circle',
            ...,
            onmousemove: echarts.util.curry(showTooltip, dataIndex),
            onmouseout: echarts.util.curry(hideTooltip, dataIndex),
        };
    })
});
function showTooltip(dataIndex) {
    myChart.dispatchAction({
        type: 'showTip',
        seriesIndex: 0,
        dataIndex: dataIndex
    });
}
function hideTooltip(dataIndex) {
    myChart.dispatchAction({
        type: 'hideTip'
    });
}

在 mouseover 的時候顯示,在 mouseout 的時候隱藏。 此時,完成了拖動的基本功能。但是,如果要在拖動過程中進一步實時查看拖動點的數(shù)據(jù)值更改,可以使用工具提示組件實時顯示該值。然而,Tooltip有其默認的“顯示”和“隱藏”觸發(fā)規(guī)則,這在我們的拖放場景中不適用。因此,我們還需要手動自定義工具提示的“顯示”和“隱藏”行為。

以上就是ECharts框架Sunburst拖拽功能實現(xiàn)方案詳解的詳細內容,更多關于ECharts Sunburst拖拽的資料請關注腳本之家其它相關文章!

相關文章

  • WebAssembly使用方法研究

    WebAssembly使用方法研究

    這篇文章主要為大家介紹了WebAssembly使用方法研究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • vscode工具函數(shù)once使用示例深入剖析

    vscode工具函數(shù)once使用示例深入剖析

    這篇文章主要為大家介紹了vscode工具函數(shù)once使用示例深入剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 微信小程序 HTTPS報錯整理常見問題及解決方案

    微信小程序 HTTPS報錯整理常見問題及解決方案

    這篇文章主要介紹了微信小程序 HTTPS報錯常見問題及解決方案的相關資料,需要的朋友可以參考下
    2016-12-12
  • 在js中修改html body的樣式

    在js中修改html body的樣式

    這篇文章主要介紹了在js中修改html body的樣式,下面文章圍繞js修改html 和body樣式的相關資料展開詳細內容,需要的朋友可以參考一下,希望對大家有所幫助
    2021-11-11
  • js前端圖片加載異常兜底方案

    js前端圖片加載異常兜底方案

    這篇文章主要為大家介紹了js前端圖片加載異常兜底方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Promise靜態(tài)四兄弟實現(xiàn)示例詳解

    Promise靜態(tài)四兄弟實現(xiàn)示例詳解

    這篇文章主要為大家介紹了Promise靜態(tài)四兄弟實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • 詳解 TypeScript 枚舉類型

    詳解 TypeScript 枚舉類型

    這篇文章主要介紹了TypeScript 枚舉類型,TypeScript 在 ES 原有類型基礎上加入枚舉類型,使得在 TypeScript 中也可以給一組數(shù)值賦予名字,這樣對開發(fā)者比較友好,可以理解枚舉就是一個字典,文章內容圍繞TypeScript 枚舉類型展開內容,需要的朋友可以參考一下
    2021-10-10
  • Tree Shaking實現(xiàn)方法指南

    Tree Shaking實現(xiàn)方法指南

    這篇文章主要為大家介紹了Tree Shaking實現(xiàn)方法指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • JavaScript 反射學習技巧

    JavaScript 反射學習技巧

    這篇文章主要給大家分享的是JavaScript 的反射學習技巧,主要是區(qū)別在于所有的函數(shù)對象屬性過于復雜,而且額外增加可能會導致程序行為不合理,所以擴展 Reflect 函數(shù)來專門對函數(shù)對象處理調用方法,構造對象,獲取或者設置屬性等相關操作。下面一起進入文章內容吧
    2021-10-10
  • Javascript使用integrity屬性進行安全驗證

    Javascript使用integrity屬性進行安全驗證

    這篇文章主要介紹了Javascript使用integrity屬性進行安全驗證,在html中,script標簽可以通過src屬性引入一個js文件,引入的js文件可以是本地的,也可以是遠程的,下面我們一起來看看文章詳細內容
    2021-11-11

最新評論

钟祥市| 南开区| 新兴县| 临海市| 惠州市| 新河县| 荔浦县| 呼玛县| 岐山县| 托克逊县| 东乡| 三明市| 长沙市| 临沂市| 安达市| 开鲁县| 蓝田县| 岳阳县| 章丘市| 宁晋县| 华阴市| 富民县| 昭觉县| 上栗县| 五峰| 米泉市| 加查县| 大余县| 江阴市| 敖汉旗| 安仁县| 老河口市| 闵行区| 古交市| 纳雍县| 崇仁县| 拉孜县| 奎屯市| 达拉特旗| 蒲江县| 云林县|