首頁 > 軟體

echarts實現餅圖與樣式設定

2022-06-06 22:00:48

餅圖

餅圖主要是通過扇形的弧度表現不同類目的資料在總和中的佔比,它的資料格式比柱狀圖更簡單,只有一維的數值,不需要給類目。因為不在直角座標系上,所以也不需要 xAxis,yAxis。

myChart.setOption({
    series : [
        {
            name: '存取來源',
            type: 'pie',    // 設定圖表型別為餅圖
            radius: '55%',  // 餅圖的半徑,外半徑為可視區尺寸(容器高寬中較小一項)的 55% 長度。
            data:[          // 資料陣列,name 為資料項名稱,value 為資料項值
                {value:235, name:'視訊廣告'},
                {value:274, name:'聯盟廣告'},
                {value:310, name:'郵件行銷'},
                {value:335, name:'直接存取'},
                {value:400, name:'搜尋引擎'}
            ]
        }
    ]
})

我們也可以通過設定引數 roseType: 'angle' 把餅圖顯示成南丁格爾圖。

option = {
    series : [
        {
            name: '存取來源',
            type: 'pie',
            radius: '55%',
            roseType: 'angle',
            data:[
                {value:235, name:'視訊廣告'},
                {value:274, name:'聯盟廣告'},
                {value:310, name:'郵件行銷'},
                {value:335, name:'直接存取'},
                {value:400, name:'搜尋引擎'}
            ]
        }
    ]
};

陰影的設定

itemStyle 引數可以設定諸如陰影、透明度、顏色、邊框顏色、邊框寬度等:

option = {
    series : [
        {
            name: '存取來源',
            type: 'pie',
            radius: '55%',
            data:[
                {value:235, name:'視訊廣告'},
                {value:274, name:'聯盟廣告'},
                {value:310, name:'郵件行銷'},
                {value:335, name:'直接存取'},
                {value:400, name:'搜尋引擎'}
            ],
            roseType: 'angle',
            itemStyle: {
                normal: {
                    shadowBlur: 200,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            }
        }
    ]
};

樣式設定

ECharts 可以通過樣式設定來改變圖形元素或者文字的顏色、明暗、大小等。

顏色主題

ECharts4 開始,除了預設主題外,內建了兩套主題,分別為 light 和 dark。

使用方式如下:

var chart = echarts.init(dom, 'light');
 
//或者
 
var chart = echarts.init(dom, 'dark');

另外,我們也可以在官方的 主題編輯器 選擇自己喜歡的主題下載。

目前主題下載提供了 JS 版本和 JSON 版本。

如果你使用 JS 版本,可以將 JS 主題程式碼儲存一個 主題名.js 檔案,然後在 HTML 中參照該檔案,最後在程式碼中使用該主題。

比如上圖中我們選中了提個主題,將 JS 程式碼儲存為 wonderland.js

<!-- 引入主題 -->
<script src="https://www.runoob.com/static/js/wonderland.js"></script>
...

// HTML 引入 wonderland.js 檔案後,在初始化的時候呼叫
var myChart = echarts.init(dom, 'wonderland');
// ...

如果主題儲存為 JSON 檔案,那麼可以自行載入和註冊。

比如上圖中我們選中了提個主題,將 JSON 程式碼儲存為 wonderland.json

//主題名稱是 wonderland
$.getJSON('wonderland.json', function (themeJSON) {
    echarts.registerTheme('wonderland', themeJSON)
    var myChart = echarts.init(dom, 'wonderland');
});

注意:我們使用了 $.getJSON,所以需要引入 jQuery。

調色盤

調色盤可以在 option 中設定。

調色盤給定了一組顏色,圖形、系列會自動從其中選擇顏色。

可以設定全域性的調色盤,也可以設定系列自己專屬的調色盤。

option = {
    // 全域性調色盤。
    color: ['#c23531','#2f4554', '#61a0a8', '#d48265', '#91c7ae','#749f83',  '#ca8622', '#bda29a','#6e7074', '#546570', '#c4ccd3'],

    series: [{
        type: 'bar',
        // 此係列自己的調色盤。
        color: ['#dd6b66','#759aa0','#e69d87','#8dc1a9','#ea7e53','#eedd78','#73a373','#73b9bc','#7289ab', '#91ca8c','#f49f42'],
        ...
    }, {
        type: 'pie',
        // 此係列自己的調色盤。
        color: ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C','#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'],
        ...
    }]
}

全域性調色盤範例:

// 全域性調色盤。
color: ['#ff0000','#00ff00', '#0000ff', '#d48265', '#91c7ae','#749f83',  '#ca8622', '#bda29a','#6e7074', '#546570', '#c4ccd3'],

系列調色盤範例:

series: [{
    type: 'pie',
    // 此係列自己的調色盤。
    color: ['#ff0000','#00ff00', '#0000ff', '#9FE6B8', '#FFDB5C','#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'],
    ...
}]

直接的樣式設定 itemStyle, lineStyle, areaStyle, label, ...

直接的樣式設定是比較常用設定方式。縱觀 ECharts 的 option 中,很多地方可以設定 itemStylelineStyleareaStylelabel 等等。這些的地方可以直接設定圖形元素的顏色、線寬、點的大小、標籤的文字、標籤的樣式等等。

一般來說,ECharts 的各個系列和元件,都遵從這些命名習慣,雖然不同圖表和元件中,itemStylelabel 等可能出現在不同的地方。

直接樣式設定的可以參考上半段 ECharts 餅圖

高亮的樣式:emphasis

在滑鼠懸浮到圖形元素上時,一般會出現高亮的樣式。預設情況下,高亮的樣式是根據普通樣式自動生成的。

如果要自定義高亮樣式可以通過 emphasis 屬性來客製化:

// 高亮樣式。
emphasis: {
    itemStyle: {
        // 高亮時點的顏色
        color: 'red'
    },
    label: {
        show: true,
        // 高亮時標籤的文字
        formatter: '高亮時顯示的標籤內容'
    }
},

到此這篇關於echarts餅圖與樣式設定的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com