echarts餅圖指示器文字顏色設置不同實例詳解

學習記錄,平時開發時遇到過的問題

echarts餅圖label文字顏色

需求: 繪制一份環形餅狀圖,並且有指示器文本標簽(文字的顏色需要和各部分相同

數據:

pieData: [
    {
        name: '犯人',
        value: 30
    },
    {
        name: '官差',
        value: 35
    },
    {
        name: '平民',
        value: 35
    },
],
// 顏色
colorList: ['#EA7267', '#F0D84B', '#7AE72F']

制作一張環形餅圖其實很簡單,echarts官網上也有示例,地址:https://echarts.apache.org/examples/zh/editor.html?c=pie-doughnut

主要繪制代碼:

let options = { 
    ......
    series: [
        {
            type: 'pie',
            radius: ['40%', '62%'],
            data: this.pieData,
            itemStyle: {
                color:(params)=> {
                    var index = params.dataIndex;
                    return this.colorList[index];
                },
            },
            label: { },
        }
    ],
}

效果:

問題

但是很明顯能夠看到餅圖的指示器文本標簽中的文字顏色都是相同的

從echarts的配置項API查看也知道可以在label中設置color進行配置,但是這樣配置出來的顏色又都是相同瞭

解決方法

既然如此,那麼久隻能在data傳入的數據中做文章瞭

將上面的pieData數組添加label屬性,這樣一來,也就不需要在series重新設置label瞭,並且指示器中文字的顏色也不同瞭

修改後:

series: [
    {
        type: 'pie',
        radius: ['40%', '62%'],
        data: this.pieData.map((item, index)=> {
            item.label = { 
                color: this.colorList[index]
            }
            return item;
        }),
        itemStyle: {
            color:(params)=> {
                var index = params.dataIndex;
                return this.colorList[index];
            },
        },
    }
],

效果:

餅圖位置

這裡再記錄一個知識點,echarts中通常折線圖和柱狀圖如果想要調整在畫佈中的位置可以使用grid屬性,但是餅圖不一樣,餅圖需要在series中調節center,這是一個數組

center是餅圖的中心(圓心)坐標,數組的第一項是橫坐標,第二項是縱坐標。支持設置成百分比,設置成百分比時第一項是相對於容器寬度,第二項是相對於容器高度。

示例:

前端開發總會遇到圖表的需求,繪制圖表簡單的可以使用canvas,復雜的統計圖表基本都會使用庫,比如:echartsamcharts

因為不同的業務需求,總會遇到卡點,平時把解決過的問題記錄下來,萬一能幫到別人呢(畢竟自己也肯定會從別人博客中查找問題解決方案)

總結

到此這篇關於echarts餅圖指示器文字顏色設置不同的文章就介紹到這瞭,更多相關echarts餅圖指示器文字顏色內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: