echarts柱狀圖圖例詳解

一、樣式設置

在echarts中,柱狀圖圖例的樣式可以通過legend屬性進行設置。其中,需要注意的是legend中的textStyle屬性可以單獨控制文字樣式,同時color屬性可以設置圖例顏色。

legend: {
  textStyle: {
    fontStyle: 'italic',
    color: '#333',
    fontSize: 14
  },
  data: ['圖例1', '圖例2'],
  color: ['#ff0000', '#00ff00']
}

上述代碼中,legend的textStyle指定了字體樣式,顏色和字型大小。同時,data屬性設置了圖例的內容,color屬性設置了圖例對應的顏色。

二、數據格式

在echarts中,柱狀圖圖例的數據格式可以靈活轉換,可以是一維數組,也可以是多維數組,例如下方代碼所示的數據格式:

var data = [{
  name: '圖例1',
  value: 100
}, {
  name: '圖例2',
  value: 200
}]

以數據格式為基礎,我們可以用不同的方式來呈現圖例數據。例如,我們可以使用data內的value屬性來作為柱狀圖高度的值:

{
  xAxis: {
    data: ['圖例1', '圖例2']
  },
  yAxis: {
    type: 'value'
  },
  series: [{
    type: 'bar',
    data: [100, 200]
  }]
}

三、圖例位置

在echarts中,柱狀圖圖例位置可以通過legend屬性的orient屬性進行控制。orient屬性包含四個值可供選擇,分別是’horizontal'(水平),’vertical'(垂直),’left'(左對齊),’center'(居中對齊),’right'(右對齊)。

legend: {
  orient: 'horizontal', //或:'vertical'、'left'、'center'、'right'
  data: ['圖例1', '圖例2']
}

上述代碼中,orient屬性設置為’horizontal’,表示圖例水平排列。

四、圖例設置

在echarts中,我們可以通過legend屬性控制圖例的顯示與隱藏,同時可以設置默認選中的圖例。

legend: {
  selectedMode: 'single', //或多選'multiple'
  selected: {
    '圖例1': true, //默認選中'圖例1'
    '圖例2': false //默認不選中'圖例2'
  },
  data: ['圖例1', '圖例2']
}

上述代碼中,selectedMode屬性設置為’single’,表示圖例單選。selected屬性設置了默認選中的圖例。

五、圖例居右

在echarts中,我們可以通過grid屬性配合legend屬性實現圖例居右的效果。

grid: {
  right: '20%',
  containLabel: true
},
legend: {
  orient: 'vertical',
  right: 10,
  data: ['圖例1', '圖例2']
}

上述代碼中,grid的right屬性設置了圖形區域離容器右側的距離。同時,legend的右邊距屬性right也進行了設置。

六、柱狀圖類型

在echarts中,我們可以通過series屬性的type屬性,來切換柱狀圖的類型。默認柱狀圖的type屬性值為’bar’,我們可以將其修改為’stack’,實現堆疊柱狀圖效果。

{
  xAxis: {
    data: ['圖例1']
  },
  yAxis: {
    type: 'value'
  },
  series: [{
    type: 'stack', //或'bar'
    data: [100],
    name: '圖例1',
    stack: '總量'
  }, {
    type: 'stack', //或'bar'
    data: [50],
    name: '圖例2',
    stack: '總量'
  }]
}

七、圖例太多怎麼展示

當我們的柱狀圖圖例太多時,可以使用legend屬性的scroll屬性進行滾動展示。

legend: {
  type: 'scroll',
  data: ['圖例1', '圖例2', '圖例3', '圖例4', '圖例5', '圖例6', '圖例7', '圖例8', '圖例9', '圖例10', '圖例11', '圖例12']
}

上述代碼中,type屬性設置為’scroll’,表示使用滾動展示圖例。data屬性設置了所有需要展示的數據。

八、圖例水平排列居右

我們可以使用legend屬性的orient屬性控制圖例水平或垂直排列,但是當圖例控制在一行顯示時,我們可以使用justify屬性將其居右顯示。

legend: {
  type: 'scroll',
  orient: 'horizontal',
  data: ['圖例1', '圖例2', '圖例3'],
  right: '30%',
  top: '80%',
  width: '40%',
  itemWidth: 20,
  itemHeight: 10,
  textStyle: {
    color: '#000'
  },
  padding: [20, 5, 0, 5],
  selected: {
    '圖例1': true,
    '圖例2': true,
    '圖例3': true
  },
  align: 'right',
  justify: true
}

上述代碼中,itemWidth和itemHeight屬性分別設置了圖例樣式的寬度和高度,padding屬性設置了圖例周圍的邊距。同時,align屬性設置了圖例在grid元素中的對齊方式,justify屬性設置了圖例水平排列時的對齊方式。

九、柱狀圖參數

在echarts中,通過柱狀圖的各個屬性我們可以自由控制柱狀圖的樣式,並且使用柱狀圖參數,可以實現更加靈活的數據展示方式。

{
  xAxis: {
    type: 'category',
    data: ['圖例1', '圖例2', '圖例3'],
    axisTick: {
      alignWithLabel: true
    }
  },
  yAxis: {
    type: 'value'
  },
  series: [{
    type: 'bar',
    data: [100, 200, 300],
    barWidth: '60%',
    itemStyle: {
      normal: {
        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
          offset: 0,
          color: '#83bff6'
        }, {
          offset: 0.5,
          color: '#188df0'
        }, {
          offset: 1,
          color: '#188df0'
        }]),
        barBorderRadius: [30, 30, 0, 0]
      }
    }
  }]
}

上述代碼中,barWidth屬性設置了柱狀圖寬度。itemStyle屬性設置了柱狀圖的顏色漸變和邊角弧度效果,具體效果可以根據實際需求進行調整。使用LinearGradient函數可以控制顏色漸變的方向和階段,分別對應四個參數(x1, y1, x2, y2)。barBorderRadius屬性設置的是柱狀圖的邊角弧度效果。

十、數據過多選取3~5個與echarts柱狀圖圖例相關的做為小標題

當柱狀圖數據過多時,我們可以通過xAxis的axisLabel屬性進行軸標籤的間隔控制,同時也可以通過數據篩選的方式,選取關鍵數據展示。

以下數據為例,我們僅展示前5個關鍵數據。

var data = {
  category: ['2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020'],
  series: [{
    name: '圖例1',
    type: 'bar',
    data: [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000],
    barWidth: '20%'
  }, {
    name: '圖例2',
    type: 'bar',
    data: [200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000],
    barWidth: '20%'
  }]
};

var option = {
  tooltip: {},
  legend: {
    data: ['圖例1', '圖例2']
  },
  calculable: true,
  xAxis: [{
    type: 'category',
    data: data.category.filter(function(value, index) {
      return index < 5;
    }),
    axisTick: {
      alignWithLabel: true
    }
  }],
  yAxis: [{
    type: 'value'
  }],
  series: [{
    name: '圖例1',
    type: 'bar',
    data: data.series[0].data.filter(function(value, index) {
      return index < 5;
    }),
    barWidth: '20%'
  }, {
    name: '圖例2',
    type: 'bar',
    data: data.series[1].data.filter(function(value, index) {
      return index < 5;
    }),
    barWidth: '20%'
  }]
};

上述代碼中,我們使用了filter方法篩選出前5個數據,並在xAxis和series中進行了相關設置。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
LVMG的頭像LVMG
上一篇 2024-10-04 00:21
下一篇 2024-10-04 00:21

相關推薦

  • Echarts 地圖 Label 增加背景圖

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

    編程 2025-04-29
  • 如何添加圖例標籤

    圖例標籤(Legend)是一種添加在圖表上的說明性標籤,可以幫助觀眾更好地理解圖表展示的數據。無論你是在製作散點圖、折線圖還是餅圖,圖例標籤都是一個必不可少的元素。本文將從以下幾個…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    編程 2025-04-25

發表回復

登錄後才能評論