1. 程式人生 > >ECharts中color : function的用法

ECharts中color : function的用法

最近有不少朋友在追問這樣一個問題:我單序列的柱狀圖,我想讓每一個根柱子的顏色都不一樣,應該如何做?

針對這個問題,其實我只想說你壓根沒有認真看完或者查詢ECharts官方的示例,官方能夠找到的示例有:

那麼你看完過後是否能夠明白其中的道理呢?資料點的屬性首先是通過itemStyle節點進行控制的,我們要控制資料點的顏色,自然我們就需要設定color,另外根據ECharts的API介紹,color是支援Function函式的。

我們首先來看看這樣一個例子:

示例一:根據資料點所在序號從一個顏色陣列內拿拿取對應顏色值

我們首先設定一個顏色陣列,最好比序列內的資料點個數要大或者相等,結合itemStyle

color的函式根據當前資料點在當前序列內所處的順序序號去顏色陣列內自動匹配顏色。

程式碼如下所示:

複製程式碼
option = {
    title : {
        text: '某地區蒸發量和降水量',
        subtext: '純屬虛構'
    },
    tooltip : {
        trigger: 'axis'
    },
    legend: {
        data:['蒸發量']
    },
    toolbox: {
        show : true,
        feature : {
            mark : {show: 
true}, dataView : {show: true, readOnly: false}, magicType : {show: true, type: ['line', 'bar']}, restore : {show: true}, saveAsImage : {show: true} } }, calculable : true, xAxis : [ { type : 'category', data : [
'1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'] } ], yAxis : [ { type : 'value' } ], series : [ { name:'蒸發量', type:'bar', data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3], itemStyle: { normal: { color: function(params) { // build a color map as your need. var colorList = [ '#C1232B','#B5C334','#FCCE10','#E87C25','#27727B', '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD', '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0' ]; return colorList[params.dataIndex] } } } } ] };
複製程式碼

效果是不是很炫?!

示例二:通過配置資料點的顏色擴充套件屬性來達到控制不同資料點的顏色

我們最想實現的應該是我們自己能夠設定每一個數據點的顏色值,而非通過設定顏色陣列的形式,那麼我們應該如何做呢?

1、我們需要改寫series的data格式,之前是一個一維資料型別的陣列,先走我們需要將至變成一個物件型別的一維陣列,如下所示;

複製程式碼
data:[{
              value:2.0,
              color:"red"
            }, 4.9, 7.0, {
              value:23.2,
              color:"green"
            }, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
複製程式碼

某些資料點我設定了其color屬性,也就是我要用所配置的顏色來渲染柱子。

2、為了沒有配置顏色屬性的資料點的顏色顯示有所歸屬(因為我們通過params找不到當前序列的顏色,所以我們最好自己給其series設定一個顏色屬性。如下所示:

複製程式碼
{
            name:'蒸發量',
            type:'bar',
            color:"#ff7f50",
            data:[{
              value:2.0,
              color:"red"
            }, 4.9, 7.0, {
              value:23.2,
              color:"green"
            }, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
            itemStyle: {
                normal: {
                  color: function(params) {                    
                    if(params.series.data[params.dataIndex] != null && params.series.data[params.dataIndex].color != undefined)
                    {
                       return params.series.data[params.dataIndex].color;
                    }else
                    {
                      return params.series.color;
                    }
                  }
                }
            }
        }
複製程式碼

最後我們就可以通過改寫itemStyle內color的function函式規則來返回資料點物件所配置的顏色以及序列所配置的顏色。

當資料點物件尚未配置顏色color屬性時,我們就返回當前序列所配置的color即可。

示例程式碼的option配置如下所示:

複製程式碼
option = {
    title : {
        text: '某地區蒸發量和降水量',
        subtext: '純屬虛構'
    },
    tooltip : {
        trigger: 'axis'
    },
    legend: {
        data:['蒸發量']
    },
    toolbox: {
        show : true,
        feature : {
            mark : {show: true},
            dataView : {show: true, readOnly: false},
            magicType : {show: true, type: ['line', 'bar']},
            restore : {show: true},
            saveAsImage : {show: true}
        }
    },
    calculable : true,
    xAxis : [
        {
            type : 'category',
            data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
        }
    ],
    yAxis : [
        {
            type : 'value'
        }
    ],
    series : [
        {
            name:'蒸發量',
            type:'bar',
            color:"#ff7f50",
            data:[{
              value:2.0,
              color:"red"
            }, 4.9, 7.0, {
              value:23.2,
              color:"green"
            }, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
            itemStyle: {
                normal: {
                  color: function(params) {                    
                    if(params.series.data[params.dataIndex] != null && params.series.data[params.dataIndex].color != undefined)
                    {
                       return params.series.data[params.dataIndex].color;
                    }else
                    {
                      return params.series.color;
                    }
                  }
                }
            }
        }
    ]
};
                    
複製程式碼

相關推薦

EChartscolor : function用法

最近有不少朋友在追問這樣一個問題:我單序列的柱狀圖,我想讓每一個根柱子的顏色都不一樣,應該如何做? 針對這個問題,其實我只想說你壓根沒有認真看完或者查詢ECharts官方的示例,官方能夠找到的示例有: 那麼你看完過後是否能夠明白其中的道理呢?資料點的屬性首先是通過itemStyle節點進行控制的,我們

EChartsdataazoom的用法

待解決的問題: 1·如果日期是當月30天資料,如何顯示當天及前9天,共10天的資料; 2.如何控制滑動標籤的位置; dataZoom=[ //區域縮放 { id: 'dataZoomX',

androidcolor用法及十六進位制編碼大全

在android開發中,適當的顏色搭配可以為我們的應用增色不少,廢話就不多了,下面是對 android開發中顏色使用的總結 顏色分類: 1.系統顏色 android內建的顏色,比如系統資源中定義的顏色,有以下幾個: BLACK(黑色),BLUE(藍

Razor 的@helper 與 @function 用法

awd ovf 取出 o2o aps vp8 AD irq efs @helper : 可以有返回值,也可以沒有返回值 @function :需要有返回值 可以將View中公共部分的代碼抽取出來,變成一個獨立的方法 公共部分 view 抽出的公共部分的vi

RPCCallback Function與CountDownLatch的用法

目錄 ●What & Why RPC(Remote Procedure Call),通俗地說,就是在一臺計算機上呼叫另一臺計算機提供的服務。這裡的服務對應RPC中的P(Procedure),表現形式通常是API介面,或者說好比一個原生代碼工程中的一個函

C++11 std::function和std::bind的用法

關於std::function 的用法: 其實就可以理解成函式指標 1. 儲存自由函式 void printA(int a) { cout<<a<<endl; } std::function<void(int a)

jquery .then(function(){})的用法

動畫就是非同步的邏輯,比如一小男孩走路為主線,在走到不同的路段就會有不同的操作,走路是通過css3的transition與animation的結合完成的,所以針對這類非同步的處理採用jquery的Deferred封裝起來。下面直接貼程式碼:        // 小孩走路 //

C++11 function和bind、lambda用法

get foo 隱式轉換 function for_each sstream ios 無法 href std::function 1. std::bind綁定一個成員函數 1 #include <iostream> 2 #include

JavaScriptthis的用法

屬於 指向 cti 用法 func 生成 純粹 ava 構造函數 this的使用環境有以下幾種 1、純粹的函數調用 純粹的函數調用屬於函數的最常用的用法,屬於全局性調用。在全局函數中,this等於window。 2、作為對象方法的調用 當函數不是全局調用,而是作為某個對象

JavaScriptreturn的用法詳解

style 返回 www log tle blog 意思 charset fun 1、定義:return 從字面上的看就是返回,官方定義return語句將終止當前函數並返回當前函數的值,可以看下下面的示例代碼: <!DOCTYPE html><html l

sqlreplace的用法

pda user spa nbsp 字段 修改 字段名 fun 大寫 update 表名 set 字段名=REPLACE (字段名,‘原來的值‘,‘要修改的值‘) 如:將tbl_user表的user_name字段中的大寫的A替換成小寫的a update tbl_stude

vuestyle的用法

使用 屬性 bsp rip color 表示 strong span back 最近學習了vue中class和class的用法,想來總結一下,也把我的知識提供給大家使用;首先來總結class的用法,vue中的class有4種寫法;class和style都屬於DOM屬性,所以

javascriptconsole的用法

變量 正常 地址 頁面 use log 到你 blank ons Javascript的console.log()用法 //變量var i = ‘I am a string‘;console.log(‘變量:‘,i);//數組var arr = [1,2,3,4,5];

Linuxsudo的用法

ber code als 安裝 有效 ould using span 帶來 在linux中的用戶只有2種:root和非root。而非root即普通用戶的權限非常低,基本處理自己的home目錄,其他好多地方連查看的權利也沒有,更不要說安裝軟件了。 為了避免來回切換root,l

Linux命令service的用法

環境 fig 手冊 echo shell腳本 env cif standard www 用途說明 service命令用於對系統服務進行管理,比如啟動(start)、停止(stop)、重啟(restart)、查看狀態(status)等。相關的命令還包括chkconfig、

java的instanceof用法詳解

定義 xtend print 繼承 interface 參數 保留 如果 ack   instanceof是Java的一個二元操作符(運算符),也是Java的保留關鍵字。它的作用是判斷其左邊對象是否為其右邊類的實例,返回的是boolean類型的數據。用它來判斷某個對象是否是

一口一口吃掉Hibernate(八)——Hibernateinverse的用法

設置 XML 示例代碼 映射文件 代碼 參加 property 如果 people 一、Inverse是hibernate雙向關系中的基本概念。inverse的真正作用就是指定由哪一方來維護之間的關聯關系。當一方中指定了“inverse=false”(默認),那麽那

OracleMerge into用法總結 (轉載)

字符 存在 sin 刪除 ron mic 但是 多個 前段時間 Oracle中Merge into用法總結 (出處:http://www.cnblogs.com/dongsheng/p/4384754.html) 起因:   前段時間,因為涉及到一張表的大數據操作,要同時

Javastatic關鍵字用法總結

副本 大括號 跟著 rac clas main 靜態成員變量 abstract 全局變量 1. 靜態方法 通常,在一個類中定義一個方法為static,那就是說,無需本類的對象即可調用此方法 聲明為static的方法有以下幾條限制: · 它們僅能調用其他的sta

burpSuite xssValidator 的用法

手動安裝 負載 右鍵 為我 ron 發生 tac extend 特定 burpSuite被越來越多的人知曉,它之中的部分模塊可能會用的人並不多。下面介紹的是xssValidator 的用法。 安裝擴展器 如果您有安裝擴展程序的經驗,可以跳過本節。 自動安裝