国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

echarts圖表動(dòng)態(tài)監(jiān)聽(tīng)dataZoom滑動(dòng),控制柱條的寬度以及數(shù)值的顯示隱藏

這篇具有很好參考價(jià)值的文章主要介紹了echarts圖表動(dòng)態(tài)監(jiān)聽(tīng)dataZoom滑動(dòng),控制柱條的寬度以及數(shù)值的顯示隱藏。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

當(dāng)數(shù)值過(guò)多時(shí),顯示所有柱條看著會(huì)很凌亂且文字會(huì)擠在一起,于是就需要監(jiān)聽(tīng)datazoom的滑動(dòng),拿到對(duì)應(yīng)的閾值后做出相應(yīng)的配置。
dataZoom” 事件通常用于響應(yīng)用戶對(duì)圖表進(jìn)行數(shù)據(jù)縮放的操作。
這里是datazoom官網(wǎng)api地址:點(diǎn)擊跳轉(zhuǎn)至官網(wǎng)文檔的datazoom介紹
初始時(shí)狀態(tài)如下圖:
echarts監(jiān)聽(tīng)legendselectchanged并修改datazoom,Web 前端,echarts,前端,javascript
滑動(dòng)x軸至設(shè)定范圍內(nèi)時(shí):
echarts監(jiān)聽(tīng)legendselectchanged并修改datazoom,Web 前端,echarts,前端,javascript

監(jiān)聽(tīng)datazoom

myChart為圖表元素,在 “dataZoom” 事件上綁定了一個(gè)回調(diào)函數(shù),當(dāng)用戶在圖表上使用數(shù)據(jù)縮放時(shí),這個(gè)回調(diào)函數(shù)會(huì)被觸發(fā)。

import * as echarts from 'echarts';
var chartDom = document.getElementById('main');
var myChart = echarts.init(chartDom);

myChart.on("dataZoom", function (params) {
})

params值

這里可以獲取到當(dāng)前datazoom的開(kāi)始位置(start)和結(jié)束位置(end)
echarts監(jiān)聽(tīng)legendselectchanged并修改datazoom,Web 前端,echarts,前端,javascript

獲取圖表的option

myChart.getOption()myChart.setOption(newoption) 是 Echarts 中常用的兩個(gè)方法,它們分別用于獲取當(dāng)前圖表的配置選項(xiàng)和設(shè)置新的配置選項(xiàng)。

myChart.getOption():
作用:該方法用于獲取當(dāng)前圖表的配置選項(xiàng)對(duì)象??梢栽谛枰@取當(dāng)前配置選項(xiàng)時(shí)調(diào)用該方法,例如在事件回調(diào)中根據(jù)當(dāng)前配置進(jìn)行進(jìn)一步處理或修改。
返回值:返回一個(gè)包含當(dāng)前圖表配置的 JavaScript 對(duì)象,可以包含圖表類型、數(shù)據(jù)系列、樣式設(shè)置等信息。

以下為myChart.getOption()返回的值,若有其他需要控制的,都可以舉一反三,根據(jù)這些值的位置對(duì)其進(jìn)行設(shè)置,不局限于本文的控制柱條的寬度以及數(shù)值的顯示隱藏。
echarts監(jiān)聽(tīng)legendselectchanged并修改datazoom,Web 前端,echarts,前端,javascript

myChart.setOption(newoption):
作用:該方法用于設(shè)置新的配置選項(xiàng)對(duì)象,即更新圖表的顯示內(nèi)容和樣式。通過(guò)設(shè)置新的配置選項(xiàng),可以動(dòng)態(tài)改變圖表的展示效果,包括數(shù)據(jù)、樣式、主題等。
參數(shù):接受一個(gè)新的配置選項(xiàng)對(duì)象作為參數(shù),用于更新圖表的配置。 返回值:并不返回特定的數(shù)值,但會(huì)觸發(fā)圖表的重新渲染以反映新的配置選項(xiàng)。

控制柱條寬度及數(shù)值的顯示與隱藏

這里通過(guò)循環(huán)圖表的option配置中的series數(shù)組,設(shè)置其數(shù)值文本是否顯示,以及柱條寬度
series.label.showseries.barWidth文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-850438.html

// 在用戶使用數(shù)據(jù)縮放時(shí)觸發(fā)該事件
myChart.on('dataZoom', function (params) {
  // 輸出參數(shù)信息到控制臺(tái)
  console.log('params', params);
  
  // 獲取當(dāng)前圖表的配置選項(xiàng)
  var newoption = myChart.getOption();
  
  // 獲取數(shù)據(jù)縮放的起始位置和結(jié)束位置
  var dataZoomStart = params.start;
  var dataZoomEnd = params.end;
  
  // 根據(jù)數(shù)據(jù)縮放的范圍對(duì)圖表進(jìn)行調(diào)整
  if (dataZoomEnd - dataZoomStart > 80) {
    // 如果數(shù)據(jù)縮放范圍大于80,設(shè)置柱狀圖的標(biāo)簽不顯示并設(shè)置柱狀寬度為5
    newoption.series.forEach(function (series) {
      series.label.show = false;//隱藏頂部數(shù)值
      series.barWidth = 5;//柱條寬度為5
    });
  } else {
    // 如果數(shù)據(jù)縮放范圍小于等于80,設(shè)置柱狀圖的標(biāo)簽顯示并設(shè)置柱狀寬度為'auto'
    newoption.series.forEach(function (series) {
      series.label.show = true;//顯示頂部數(shù)值
      series.barWidth = 'auto';//柱條寬度自適應(yīng)
    });
  }

  // 根據(jù)調(diào)整后的配置選項(xiàng)更新圖表
  myChart.setOption(newoption);
});

// 設(shè)置圖表的初始配置選項(xiàng)
option && myChart.setOption(option); 

全部代碼(echarts示例可直接粘貼使用)

let colors = [
          {
            color: {
              botom: "rgba(253, 234, 60,0)",
              top: "rgba(253, 234, 60,1)",
            },
          },
          {
            color: {
              botom: "rgba(252, 140, 27,0)",
              top: "rgba(252, 140, 27,1)",
            },
          },
          {
            color: {
              botom: "rgba(100, 218, 217,0)",
              top: "rgba(100, 218, 217,1)",
            },
          },
];
var shadowColors = [];
colors.forEach((item) => {
        var colorobj = {
          type: "linear",
          x: 0,
          y: 1,
          x2: 0,
          y2: 0,
          colorStops: [
            {
              offset: 0,
              color: item.color.botom, // 0% 處的顏色
            },
            {
              offset: 1,
              color: item.color.top, // 100% 處的顏色
            },
          ],
        };
        shadowColors.push(colorobj);
});
console.log('shadowColors',shadowColors);
option = {
  color: shadowColors,
  dataZoom: [
          {
            type: "slider", // 設(shè)置為滑動(dòng)條
            show: true, // 顯示滑動(dòng)條
            start: 0, // 滑動(dòng)條起始位置
            end: 40, // 滑動(dòng)條結(jié)束位置
            bottom: 10, // 滑動(dòng)條距離底部的距離
            textStyle: {
              color: "#fff",
            },
            backgroundColor: "#acb7c3", // 設(shè)置背景顏色
            handleStyle: {
              color: "#2a82e4", // 設(shè)置左右兩邊的可滑動(dòng)收縮豎線顏色
            },
          },
        ],
  tooltip: {
          trigger: "axis",
          axisPointer: {
            type: "shadow", // 顯示陰影指示器
          },
          formatter: function (indexs) {
            var data = [];
            indexs.forEach((item) => {
              data.push({
                  seriesName: item.seriesName,
                  value: item.value,
              });
            });
            var content = "";
            data.forEach((item) => {
              content += item.seriesName + ": " + item.value + "<br>";
            });
            return content;
          },
        },
  xAxis: {
    type: 'category',
    data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun','Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun','Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      data: [120, 200, 150, 80, 70, 110, 130,120, 200, 150, 80, 70, 110, 130,120, 200, 150, 80, 70, 110, 130],
      type: 'bar',
      name:'name1',
      barWidth: 10,
      barGap: 1, //柱子之間間距
      label: {
        show: true,
        position: "top",
        color: "white",
        rotate: 60,
        textStyle: {
          color: colors[0].color.top
        },
      },
    },
    {
      data: [110, 250, 110, 80, 90, 120, 160,110, 250, 110, 80, 90, 120, 160,110, 250, 110, 80, 90, 120, 160],
      type: 'bar',
      name:'name2',
      barWidth: 10,
      barGap: 1, //柱子之間間距
      label: {
        show: true,
        position: "top",
        color: "white",
        rotate: 60,
        textStyle: {
          color: colors[1].color.top
        },
      },
    },
    {
      data: [20, 220, 140, 70, 70, 100, 30,20, 220, 140, 70, 70, 100, 30,20, 220, 140, 70, 70, 100, 30],
      type: 'bar',
      name:'name3',
      barWidth: 10,
      barGap: 1, //柱子之間間距
      label: {
        show: true,
        position: "top",
        color: "white",
        rotate: 60,
        textStyle: {
          color: colors[2].color.top
        },
      },
    },
  ]
};
myChart.on("dataZoom", function (params) {
  var newoption = myChart.getOption();
  var dataZoomStart = params.start;
  var dataZoomEnd = params.end;
  if (dataZoomEnd - dataZoomStart > 70) {
    newoption.series.forEach(function (series) {
      series.label.show = false;
    });
  }else {
    newoption.series.forEach(function (series) {
      series.label.show = true;
    });
  }
  
  myChart.setOption(newoption);
})

到了這里,關(guān)于echarts圖表動(dòng)態(tài)監(jiān)聽(tīng)dataZoom滑動(dòng),控制柱條的寬度以及數(shù)值的顯示隱藏的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包