echarts柱狀圖漸變色詳解

一、設計理念

echarts是一款開源的,基於Javascript的可視化界面庫,用於在Web頁面中炫酷的呈現數據。和大多數js圖表庫不同的是,echarts將圖形和數據分離,將數據和圖形傳遞給圖形組件,使用option設置組件的各種屬性、數據和交互事件。echarts主要包括直觀的數據管理、主題可配置、快速繪製及海量數據展示等功能。在數據展示方面,通過柱狀圖、折線圖、散點圖、餅狀圖、地圖等多種圖表,可滿足各種複雜數據展示方案。

關於柱狀圖漸變色的設計理念,設計師們的靈感來源於色彩的變化和變幻,它的設計思路就是漸變色,將色彩漸變過程當成柱狀圖的高度與數據的關係,通過飽和度和亮度變化,表現出不同的數據層次感。

二、基礎柱狀圖

首先我們需要通過option設置series中的data數據,data是一個數組,在數組中包含多個對象,在對象中設置name和value屬性。


option = {
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis: {
    type: 'value'
  },
  series: [{
    data: [120, 200, 150, 80, 70, 110, 130],
    type: 'bar'
  }]
};

以上代碼顯示的柱狀圖是一種基礎形式,僅僅展現了數據和柱形的關係,而沒有任何裝飾和美化。下面,我們將在基礎柱狀圖的基礎上,實現各種漸變色效果。

三、單一漸變色

單一漸變色簡單易實現,僅需要設置color屬性為漸變色即可。在series的data屬性中,加入color屬性,如下所示:


option = {
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis: {
    type: 'value'
  },
  series: [{
    data: [120, 200, 150, 80, 70, 110, 130],
    type: 'bar',
    color: new echarts.graphic.LinearGradient(
      0, 0, 0, 1,
      [
        { offset: 0, color: '#00ffe0' },
        { offset: 1, color: '#007fd6' }
      ]
    )
  }]
};

其中,color屬性的值為一個echarts.graphic.LinearGradient類型的漸變對象,它接收四個參數,分別表示漸變的方向和起始終止坐標,最後一個參數是數組,表示在該漸變坐標系內,漸變的色值可以設多個顏色值,做出更複雜的漸變效果。

四、多重混合色

多重混合色是將多個顏色和諧混合在一起,呈現出一種新的顏色感覺。通過echarts.graphic.LinearGradient接收的color數組,我們可以設置多個顏色值,如下代碼:


option = {
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis: {
    type: 'value'
  },
  series: [{
    data: [120, 200, 150, 80, 70, 110, 130],
    type: 'bar',
    color: new echarts.graphic.LinearGradient(
      0, 0, 0, 1,
      [
        { offset: 0, color: '#d70934' },
        { offset: 0.1, color: '#e8336b' },
        { offset: 0.3, color: '#f6c8a1' },
        { offset: 0.6, color: '#cab3e9' },
        { offset: 1, color: '#8c7ae6' }
      ]
    )
  }]
};

在顏色對象中,通過offset屬性設置不同的色值漸變區段,使得顏色更加和諧。

五、動態漸變色

動態漸變色是一種流動的漸變感,柱形的高度跟隨漸變的顏色依次變化,呈現出一種時尚 stylish 的效果。這個效果的實現,需要有隨著柱狀圖的高度逐漸變化的漸變色。


option = {
  xAxis: {
    type: 'value',
    max: 100,
    min: 0
  },
  yAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  series: [{
    name: '銷量',
    type: 'bar',
    data: [46, 50, 24, 18, 64, 80, 55],
    itemStyle: {
      normal: {
        color: function(params) {
          var colorList = [
            [
              '#E8B0D6',
              '#ffa750'
            ],
            [
              '#C6C8F3',
              '#F4E8C1'
            ],
            [
              '#97B5F1',
              '#FEC074'
            ],
            [
              '#V94F87',
              '#E32F46'
            ],
            [
              '#00c2ff',
              '#ffb30f'
            ],
            [
              '#AEE0FB',
              '#FF9F7F'
            ],
            [
              '#74ABE2',
              '#EFE994'
            ]
          ];
          var index = params.dataIndex;
          if (params.type == 'bar') {
            return {
              type: 'linear',
              colorStops: [{
                offset: 0,
                color: colorList[index][0]
              }, {
                offset: 1,
                color: colorList[index][1]
              }]
            }
          }
        }
      }
    }
  }]
};

對比上面的代碼,可以看到,我們通過設置itemStyle的normal屬性為動態漸變色,color屬性接收了一個匿名函數,該函數接受params,返回一個類型為『linear』漸變對象,漸變對象中,通過colorStops數組,設置漸變的色值區間。

六、反向漸變色

反向漸變色與單一漸變色的實現類似,只需顏色設置相反即可。


option = {
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis: {
    type: 'value'
  },
  series: [{
    data: [120, 200, 150, 80, 70, 110, 130],
    type: 'bar',
    color: new echarts.graphic.LinearGradient(
      0, 0, 0, 1,
      [
        { offset: 0, color: '#007fd6' },
        { offset: 1, color: '#00ffe0' }
      ]
    )
  }]
};

從橫向對比角度看,反向漸變色的柱形圖和單一漸變色的柱形圖相比,顯得更加突出。

七、總結

以上就是對於echarts柱狀圖漸變色的詳細講解,通過單一漸變色、多重混合色、動態漸變色和反向漸變色等多種方案,實現了不同風格的圖表色彩更加突出,展示數據更加生動的效果。在實際開發中,可以根據不同的需求選擇相應的漸變方案,來呈現出更加優美、豐富、時尚的數據圖表。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
VUOV的頭像VUOV
上一篇 2024-11-07 09:50
下一篇 2024-11-07 09:50

相關推薦

  • Echarts 地圖 Label 增加背景圖

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    編程 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

發表回復

登錄後才能評論