• <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <small id="ggggg"></small> <sup id="ggggg"></sup>
    <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <tfoot id="ggggg"></tfoot>
  • <nav id="ggggg"><cite id="ggggg"></cite></nav>
    <nav id="ggggg"></nav>
    成人黃色A片免费看三更小说,精品人妻av区波多野结衣,亚洲第一极品精品无码,欧美综合区自拍亚洲综合,久久99青青精品免费观看,中文字幕在线中字日韩 ,亚洲国产精品18久久久久久,黄色在线免费观看

    Echarts餅圖之數據展示

    2020-3-3    seo達人

    Echarts餅圖之數據展示

    1、組件簡介

    ECharts,一個使用 JavaScript 實現的開源可視化庫,可以流暢的運行在 PC 和移動設備上,兼容當前絕大部分瀏覽器(IE8/9/10/11,Chrome,Firefox,Safari等),底層依賴矢量圖形庫 ZRender,提供直觀,交互豐富,可高度個性化定制的數據可視化圖表。


    官網鏈接:Echarts官網

    W3C教程:W3C–Echarts教程


    2、前端代碼實現

    首先,下載庫,并引入到項目文件;


    話不多說,直接上代碼。


    /* 封裝的組件 HTML代碼

    <div class="echart-wrap-box">

       <div class="echart-content"></div>

    </div>

    */

    let echarts = require("echarts/echarts.min");


    defaults: {

      option: {

          echartsObj: {},

          tooltip: {//提示框浮層內容。

              trigger: 'item',//數據項圖形觸發,主要在散點圖,餅圖等無類目軸的圖表中使用。

              formatter: "{b} : {c}萬人"http://提示框浮層內容格式器,{a}(系列名稱),{b}(數據項名稱),{c}(數值), 2mmmm0mmmm(百分比)

          },

          //如果系列沒有設置顏色,則會依次循環從默認列表中取顏色作為系列顏色。

          color: ["#369DFD", "#32C8CA", "#49C872", "#F6CE36", "#EE607A", "#935CE3", "#3436C7", "#3E4D86"],

          legend: {//圖例組件。

              orient: 'vertical',//圖例列表的布局朝向:垂直的

              x: '80%',//圖例組件離容器左側的距離。

              y: '60%',//圖例組件離容器上側的距離。

              // width: 100,

              textStyle: {},//圖例文字的樣式

              // left: 'right',//圖例組件離容器左側的距離。

              top: 'center',//圖例組件離容器上側的距離。

              data: [],//右側圖例小組件信息數據

          },

          series: [{//餅圖信息

              name: '',

              type: 'pie',//餅狀圖

              radius: 140,//餅圖的半徑。

              center: ['50%', '50%'],

              minAngle: 5,  //最小的扇區角度(0 ~ 360),用于防止某個值過小導致扇區太小影響交互

              label: {//展示文本設置

                  normal: {

                      show: true,

                      formatter: "{b} : {c}萬人",//視覺引導線內容格式器,{a}(系列名稱),{b}(數據項名稱),{c}(數值), 2mmmm0mmmm(百分比)

                  },

                  emphasis: {    //文本樣式

                      show: true,    //展示

                      textStyle: {    //文本樣式

                          fontSize: '16',

                          fontWeight: '600',

                      }

                  }

              },

              labelLine: {//視覺引導線設置

                  normal: {

                      show: true

                  }

              },

              data: [],//餅狀圖信息數據,value(數量)和 name為默認數據;

              itemStyle: {

                  emphasis: {

                      shadowBlur: 10,

                      shadowOffsetX: 0,

                      shadowColor: 'rgba(0, 0, 0, 0.5)'

                  }

              }

          }],

      },

      onInit(event) {

          vm = event.vmodel;            

          let data;//假設這里通過ajax獲取到了需要展示的數據;

          if (data.length == 0) {

              return

          }

          data = data.sort((a, b) => { return b.number - a.number });//數據根據數量number從大到小排序


          if (data.length > 7) {//從大到小的第八個新增粉絲數量的年份 開始統一歸為 其他年份新增粉絲數量

              let arr = data.slice(7);

              let num = 0, rate = 0;

              for (let i = 0; i < arr.length; i++) {//第七個之后累數量和比率

                  num += Number(arr[i].number);

                  rate += Number(arr[i].rate);

              };

              let objOtherYear = {

                  value: num,

                  name: '其他年份__nana新增粉絲數量',

                  rate: rate

              };

              let arr2 = data.slice(0, 7);

              arr2.push(objOtherYear);

              data = arr2;

              data = data.sort((a, b) => { return b.number - a.number });//數據根據數量number從大到小排序

          }


          this.option.series[0].data = [];

          this.option.legend.data = [];

          for (let i = 0; i < data.length; i++) {

              let seriesData = {

                  value: 0,

                  name: '',

                  rate: ''

              };

              seriesData.value = data[i].number;

              seriesData.name = data[i].year;

              seriesData.rate = data[i].rate;

              this.option.series[0].data.push(seriesData);//給餅圖賦值數據


              let legendData = {

                  name: '',

                  icon: 'circle',//強制設置圖形為:圓形

                  textStyle: {

                      color: '#000'

                  }

              }

              legendData.name = data[i].year;

              this.option.legend.data.push(legendData);//給圖例組件賦值數據

          }

      },

      callFun: avalon.noop,//點擊餅狀圖后的回調

      isClickEchartsOUt: avalon.noop,//是否為餅圖外的點擊,父組件進行判斷后傳過來

      onReady(event) {

          this.echartsObj = echarts.init(event.target.children[0]);//初始化

          this.echartsObj.setOption(this.option);


          $(window).resize(() => {

              this.echartsObj.resize();

          });


          let dataIndex;//保存選中扇區的序號

          let _this = this;


          this.$watch('isClickEchartsOUt', () => {

              if (this.isClickEchartsOUt) {//如果不是餅狀圖扇區的點擊,則取消選中;

                  _this.echartsObj.dispatchAction({

                      type: 'pieUnSelect',//取消選中指定的餅圖扇形。

                      // 可選,系列 index,可以是一個數組指定多個系列

                      seriesIndex: 0,

                      // 可選,數據的 index

                      dataIndex: dataIndex,

                  })

              }

          });


          // 處理點擊餅圖內部的事件

          this.echartsObj.on('click', function (params) {


              if (params.dataIndex != dataIndex) {//如果不是前一次選中的扇區,則取消選中

                  _this.echartsObj.dispatchAction({

                      type: 'pieUnSelect',//取消選中指定的餅圖扇形。

                      // 可選,系列 index,可以是一個數組指定多個系列

                      seriesIndex: 0,

                      // 可選,數據的 index

                      dataIndex: dataIndex,

                  })

              }


              dataIndex = params.dataIndex;


              _this.echartsObj.dispatchAction({

                  type: 'pieSelect',//選中指定的餅圖扇形。

                  // 可選,系列 index,可以是一個數組指定多個系列

                  seriesIndex: 0,

                  // 數據的 index,如果不指定也可以通過 name 屬性根據名稱指定數據

                  dataIndex: dataIndex,

              })


              vm.callFun(params);//回調,傳點擊獲取到的數據給父組件

          });

      },

      onDispose() {}

    }


    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://m.lzhte.cn

    存檔

    主站蜘蛛池模板: 亚洲妓女综合网995久久| 天堂tv亚洲tv日本tv欧洲| 国产精品国产三级国产剧情| 国产无套粉嫩白浆在线精品| 18禁免费无码无遮挡不卡网站| 亚洲AV午夜成人无码电影| 偏关县| 福利姬av| 中文字幕乱码中文乱码51精品 | 老司机午夜福利视频免费播放| 国产精品视频一区国模私拍| 久久久WWW成人免费精品| 欧美乱妇高清无乱码免费| 色欲AV永久无码精品无码蜜桃| 丁香综合| 亚洲精品日韩一区二区电影| 国产无遮挡吃胸膜奶免费看| 国产av一区二区三区丝袜 | 亚洲中文字幕久久精品蜜桃| 国产无码精品在线播放| 国产精品自在线拍国产手机版| 久久久久久久成人午夜精品福利 | 亚洲日韩AV秘 无码一区二区 | 成人无码在线视频区| 欧美性交网| 国产高清无密码一区二区三区| 9丨精品国产高清自在线看| 国产偷国产偷亚洲清高网站| 郯城县| 久久精品国产久精国产80cm| 国产精品一区二区久久精品蜜臀 | 亚洲AV伊人久久综合密臀性色 | 无码专区人妻系列日韩精品少妇| 亚洲国产一区二区毛片| 十八禁午夜福利免费网站 | 欧美另类图区清纯亚洲| 涩涩鲁亚洲精品一区二区| 日本中文字幕一区二区在线观看| 亚洲国产精品嫩草影院久久| 乌兰察布市| 在线天堂av一区二区|