詳解echarts漸變色

一、設置漸變色

在echarts中,我們可以使用漸變色來美化數據圖表。設置漸變色的方法如下:

option = {
    series: [{
        type: 'bar',
        data: [10, 20, 30, 40],
        itemStyle: {
            normal: {
                color: new echarts.graphic.LinearGradient(
                    0, 0, 0, 1,
                    [
                        {offset: 0, color: '#83bff6'},
                        {offset: 0.5, color: '#188df0'},
                        {offset: 1, color: '#188df0'}
                    ]
                )
            }
        }
    }]
};

上述代碼中,我們在itemStyle中設置了normal下的color為一個LinearGradient。LinearGradient可以接收四個參數:漸變起點x坐標,漸變起點y坐標,漸變終點x坐標,漸變終點y坐標。同時,我們還在LinearGradient中傳入了一個數組作為漸變的顏色值,數組中每一項是一個對象,包含了offset和color兩個屬性。offset代表漸變的位置,如上述代碼中,offset為0代表從漸變起點0向終點1變化,顏色為#83bff6,offset為1代表從漸變起點0向終點1變化,顏色為#188df0。

二、漸變色失效

在設置漸變色時,存在一些問題可能導致漸變色失效。其中,最常見的有以下兩種情況:

1、沒有設置series中的顏色值為’none’。

option = {
    series: [{
        type: 'bar',
        data: [10, 20, 30, 40],
        itemStyle: {
            normal: {
                color: 'none',
                borderColor: new echarts.graphic.LinearGradient(
                    0, 0, 0, 1,
                    [
                        {offset: 0, color: '#83bff6'},
                        {offset: 0.5, color: '#188df0'},
                        {offset: 1, color: '#188df0'}
                    ]
                ),
                borderWidth: 2
            }
        }
    }]
};

上述代碼中,我們在設置LinearGradient時,同時設置了borderColor和borderWidth。同時也將color值設置為了’none’。這樣做的目的是讓borderColor生效。

2、沒有在設置顏色時加上new關鍵字。

option = {
    series: [{
        type: 'bar',
        data: [10, 20, 30, 40],
        itemStyle: {
            normal: {
                color: echarts.graphic.LinearGradient(
                    0, 0, 0, 1,
                    [
                        {offset: 0, color: '#83bff6'},
                        {offset: 0.5, color: '#188df0'},
                        {offset: 1, color: '#188df0'}
                    ]
                )
            }
        }
    }]
};

上述代碼中,我們在設置LinearGradient時,沒有加上new關鍵字。這將導致漸變色失效,因此在設置LinearGradient時,請務必加上new關鍵字。

三、柱狀圖漸變

在echarts中,我們可以使用漸變色來美化柱狀圖。設置漸變色的方法如下:

option = {
    xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        data: [820, 932, 901, 934, 1290, 1330, 1320],
        type: 'bar',
        itemStyle: {
            normal: {
                color: new echarts.graphic.LinearGradient(
                    0, 0, 0, 1,
                    [
                        {offset: 0, color: '#7FFFD4'},
                        {offset: 0.5, color: '#2E8B57'},
                        {offset: 1, color: '#228B22'},
                    ]
                )
            }
        }
    }]
};

上述代碼中,我們設置了一個柱狀圖,並在其中加入了漸變色。設置漸變色的方法與前面介紹的一致。

四、圖表漸變

在echarts中,除了柱狀圖之外,我們還可以給其他類型的圖表設置漸變色。例如下面這個折線圖:

option = {
    xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        data: [820, 932, 901, 934, 1290, 1330, 1320],
        type: 'line',
        areaStyle: {
            color: new echarts.graphic.LinearGradient(
                0, 0, 0, 1,
                [
                    {offset: 0, color: 'red'},
                    {offset: 0.5, color: 'blue'},
                    {offset: 1, color: 'green'},
                ]
            )
        }
    }]
};

上述代碼中,我們設置了一個折線圖,並在其中加入了漸變色。在實現漸變色時,我們將color屬性改為了areaStyle屬性。

五、設置顏色

在echarts中,我們有多種方法可以設置數據點的顏色。例如下面這個柱狀圖:

option = {
    xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        data: [820, 932, 901, 934, 1290, 1330, 1320],
        type: 'bar',
        itemStyle: {
            normal: {
                color: function(params) {
                    var colorList = [
                        '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B',
                        '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
                        '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
                    ];
                    return colorList[params.dataIndex]
                }
            }
        }
    }]
};

上述代碼中,我們使用函數來設置顏色。在函數中,我們定義了一個colorList數組,包含了16種不同的顏色。然後,我們在返回值中使用params.dataIndex來獲取每個數據點的索引,再返回相應的顏色值。這種方法可以幫助我們動態設置顏色,避免顏色過於單一。

六、改顏色

在數據變化時,我們可能需要改變echarts中數據點的顏色。例如下面這個柱狀圖:

option = {
    xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        data: [820, 932, 901, 934, 1290, 1330, 1320],
        type: 'bar',
        itemStyle: {
            normal: {
                color: function(params) {
                    var colorList = [
                        '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B',
                        '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
                        '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
                    ];
                    return colorList[params.dataIndex]
                }
            }
        }
    }]
};

// 數據變化,改變顏色
var myChart = echarts.init(document.getElementById('main'));
var currentIndex = -1;
setInterval(function() {
    var dataLen = option.series[0].data.length;
    // 取消之前高亮的圖形
    myChart.dispatchAction({
        type: 'downplay',
        seriesIndex: 0,
        dataIndex: currentIndex
    });
    currentIndex = (currentIndex + 1) % dataLen;
    // 高亮當前圖形
    myChart.dispatchAction({
        type: 'highlight',
        seriesIndex: 0,
        dataIndex: currentIndex
    });
    // 顯示 tooltip
    myChart.dispatchAction({
        type: 'showTip',
        seriesIndex: 0,
        dataIndex: currentIndex
    });
}, 1000);

上述代碼中,我們設置了一個柱狀圖,並給每個數據點使用函數動態設置了顏色。然後,我們在數據變化時,使用setInterval定時器來改變echarts中數據點的顏色。具體實現方法是:使用echarts的dispatchAction方法來取消原來高亮的數據點,然後再高亮當前的數據點,並顯示tooltip。這種方法可以讓我們更加靈活地控制echarts中數據點的顏色。

原創文章,作者:WUPN,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/143488.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
WUPN的頭像WUPN
上一篇 2024-10-22 23:33
下一篇 2024-10-22 23:33

相關推薦

  • Echarts 地圖 Label 增加背景圖

    本文將從多個方面對 Echarts 地圖 Label 增加背景圖進行詳細的闡述。 一、背景圖的作用 為 Echarts 地圖添加背景圖可以使 Label 更加直觀、美觀,提升視覺效…

    編程 2025-04-29
  • ECharts地圖輪播

    本文將從插件基礎、數據準備及處理、地圖呈現、輪播控制等方面,對ECharts地圖輪播進行詳細闡述。 一、插件基礎 ECharts官方提供了一個名為「echarts-gl」的插件,它…

    編程 2025-04-27
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變數讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web伺服器。nginx是一個高性能的反向代理web伺服器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分散式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25

發表回復

登錄後才能評論