国产精品美女久久久浪潮AV,国产精品三级一二三区,久久精品国产一区二区小说 ,依依成人影视国产精品,全部无卡免费的毛片在线看,日本一区二区三深夜不卡,国产精品女同一区二区久久,国产精品夜色一区二区三区

        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}(數值), xhhjn7xljfrd(百分比)

              },

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

              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}(數值), xhhjn7xljfrd(百分比)

                      },

                      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.shtzxx.cn

        存檔

        主站蜘蛛池模板: 亚洲国产成人精品无码区花野真一 | 美丽的小水蜜桃3| 永久黄网站色视频免费观看 | 两个世界免费观看高清中文版视频| 成年女人18级毛片毛片免费 | 最近中文字幕完整视频高清1| 午夜性又黄又爽免费看尤物| 国产成人无码av一区二区在线观看| 熟妇人妻无乱码中文字幕| 樟树市| 99精品一区二区三区无码吞精| 国产乱码人妻一区二区三区四区| 亚洲精品久久麻豆蜜桃| 最近中文字幕大全免费版在线| 野花免费视频完整版在线播放| 定结县| 木兰县| av中文字幕网免费观看| 国产精品天天看天天狠| 美女内射视频www网站午夜| 成年女人a毛片免费视频| 婷婷丁香社区| 人禽伦免费交视频播放| 麻豆一区二区99久久久久| 麻豆 美女 丝袜 人妻 中文| 精品+在线+国产手机| 中文字字幕人妻中文| 粗大的内捧猛烈进出少妇视频| 国产精品99久久久久久猫咪 | 国产精品久久久天天影视| 欧美人和黑人牲交网站上线| 最好看的电影2019中文字幕| 亚洲人成电影网站色| 中文人妻熟女乱又乱精品| 精品国产亚洲一区二区三区在线观看 | 777午夜精品免费观看| 河池市| 天堂网www在线资源中文| 岛国av资源网| 一个人免费视频观看| 久久久噜噜噜久久熟女色|