echart——關系圖graph詳解


VueEchart組件見上一篇
<template>
  <VueEcharts :options="options" auto-resize />
</template>

<script>
export default {
  data () {
    const title = {
      // show: true,                                 //是否顯示
      text: "畫布關系圖",                             //大標題
      subtext: "圖形可拖動、縮放",                          //小標題
      // sublink: "http://www.baidu.com",          //小標題鏈接
      // target: "blank",                            //'self' 當前窗口打開,'blank' 新窗口打開
      // subtarget: "blank",                        //小標題打開鏈接的窗口
      // textAlign: "center",                       //文本水平對齊
      // textBaseline: "top",                       //文本垂直對齊
      // textStyle: mytextStyle,                     //標題樣式
      // subtextStyle: mytextStyle,                 //小標題樣式
      // padding: 5,                                  //標題內邊距 5  [5, 10]  [5,10,5,10]
      // itemGap: 10,                                 //大小標題間距
      // zlevel: 0,                                   //所屬圖形的Canvas分層,zlevel 大的 Canvas 會放在 zlevel 小的 Canvas 的上面
      // z: 2,                                         //所屬組件的z分層,z值小的圖形會被z值大的圖形覆蓋
      // left: "center",                              //組件離容器左側的距離,'left', 'center', 'right','20%'
      // top: "top",                                   //組件離容器上側的距離,'top', 'middle', 'bottom','20%'
      // right: "auto",                               //組件離容器右側的距離,'20%'
      // bottom: "auto",                              //組件離容器下側的距離,'20%'
      // backgroundColor: "transparent",            //標題背景色
      // borderColor: "#ccc",                         //邊框顏色
      // borderWidth: 0,                               //邊框線寬
      // shadowColor: "red",                          //陰影顏色
      // shadowOffsetX: 0,                            //陰影水平方向上的偏移距離
      // shadowOffsetY: 0,                            //陰影垂直方向上的偏移距離
      // shadowBlur: 10,                               //陰影的模糊大小
    };
    const tooltip = {                             //提示框組件
      trigger: 'item',                            //觸發類型,'item'數據項圖形觸發,主要在散點圖,餅圖等無類目軸的圖表中使用。 'axis'坐標軸觸發,主要在柱狀圖,折線圖等會使用類目軸的圖表中使用。
      // triggerOn: "mousemove",                      //提示框觸發的條件,'mousemove'鼠標移動時觸發。'click'鼠標點擊時觸發。'mousemove|click'同時鼠標移動和點擊時觸發。'none'不在 'mousemove' 或 'click' 時觸發
      // showContent: true,                           //是否顯示提示框浮層
      // alwaysShowContent: true,                     //是否永遠顯示提示框內容
      // showDelay: 0,                                  //浮層顯示的延遲,單位為 ms
      // hideDelay: 100,                                //浮層隱藏的延遲,單位為 ms
      // enterable: false,                             //鼠標是否可進入提示框浮層中
      // confine: false,                               //是否將 tooltip 框限制在圖表的區域內
      // transitionDuration: 0.4,                      //提示框浮層的移動動畫過渡時間,單位是 s,設置為 0 的時候會緊跟着鼠標移動
      // position: ['50%', '50%'],                    //提示框浮層的位置,默認不設置時位置會跟隨鼠標的位置,[10, 10],回掉函數,inside鼠標所在圖形的內部中心位置,top、left、bottom、right鼠標所在圖形上側,左側,下側,右側,
      formatter: "{b}",                          //提示框浮層內容格式器,支持字符串模板和回調函數兩種形式,模板變量有 {a}, {b},{c},{d},{e},分別表示系列名,數據名,數據值等<br />{b1}: {c1}
      // backgroundColor: "transparent",            //標題背景色
      // borderColor: "#ccc",                        //邊框顏色
      // borderWidth: 0,                              //邊框線寬
      // padding: 5,                                  //圖例內邊距,單位px  5  [5, 10]  [5,10,5,10]
      // textStyle: mytextStyle,                     //文本樣式
    };
    const toolbox = {
      // show: true,                                 //是否顯示工具欄組件
      orient: "horizontal",                        //工具欄 icon 的布局朝向'horizontal' 'vertical'
      // itemSize: 15,                                 //工具欄 icon 的大小
      // itemGap: 10,                                  //工具欄 icon 每項之間的間隔
      // showTitle: true,                             //是否在鼠標 hover 的時候顯示每個工具 icon 的標題
      feature: {
        mark: {                                 // '輔助線開關'
          show: true
        },
        dataView: {                            //數據視圖工具,可以展現當前圖表所用的數據,編輯后可以動態更新
          show: true,                         //是否顯示該工具。
          title: "數據視圖",
          readOnly: false,                    //是否不可編輯(只讀)
          lang: ['數據視圖', '關閉', '刷新'],  //數據視圖上有三個話術,默認是['數據視圖', '關閉', '刷新']
          backgroundColor: "#fff",             //數據視圖浮層背景色。
          textareaColor: "#fff",               //數據視圖浮層文本輸入區背景色
          textareaBorderColor: "#333",         //數據視圖浮層文本輸入區邊框顏色
          textColor: "#000",                    //文本顏色。
          buttonColor: "#c23531",              //按鈕顏色。
          buttonTextColor: "#fff",             //按鈕文本顏色。
        },
        magicType: {                            //動態類型切換
          show: true,
          title: "切換",                       //各個類型的標題文本,可以分別配置。
          type: ['line', 'bar'],              //啟用的動態類型,包括'line'(切換為折線圖), 'bar'(切換為柱狀圖), 'stack'(切換為堆疊模式), 'tiled'(切換為平鋪模式)
        },
        restore: {                             //配置項還原。
          show: true,                         //是否顯示該工具。
          title: "還原",
        },
        saveAsImage: {                         //保存為圖片。
          show: true,                         //是否顯示該工具。
          type: "png",                         //保存的圖片格式。支持 'png' 和 'jpeg'。
          name: "pic1",                        //保存的文件名稱,默認使用 title.text 作為名稱
          backgroundColor: "#ffffff",        //保存的圖片背景色,默認使用 backgroundColor,如果backgroundColor不存在的話會取白色
          title: "保存為圖片",
          pixelRatio: 1                        //保存圖片的分辨率比例,默認跟容器相同大小,如果需要保存更高分辨率的,可以設置為大於 1 的值,例如 2
        },
        dataZoom: {                             //數據區域縮放。目前只支持直角坐標系的縮放
          show: true,                         //是否顯示該工具。
          title: "縮放",                       //縮放和還原的標題文本
          xAxisIndex: 0,                       //指定哪些 xAxis 被控制。如果缺省則控制所有的x軸。如果設置為 false 則不控制任何x軸。如果設置成 3 則控制 axisIndex 為 3 的x軸。如果設置為 [0, 3] 則控制 axisIndex 為 0 和 3 的x軸
          yAxisIndex: false,                   //指定哪些 yAxis 被控制。如果缺省則控制所有的y軸。如果設置為 false 則不控制任何y軸。如果設置成 3 則控制 axisIndex 為 3 的y軸。如果設置為 [0, 3] 則控制 axisIndex 為 0 和 3 的y軸
        },
      },
      // zlevel: 0,                                   //所屬圖形的Canvas分層,zlevel 大的 Canvas 會放在 zlevel 小的 Canvas 的上面
      // z: 2,                                         //所屬組件的z分層,z值小的圖形會被z值大的圖形覆蓋
      // left: "center",                              //組件離容器左側的距離,'left', 'center', 'right','20%'
      // top: "top",                                   //組件離容器上側的距離,'top', 'middle', 'bottom','20%'
      right: "2%",                               //組件離容器右側的距離,'20%'
      // bottom: "auto",                              //組件離容器下側的距離,'20%'
      // width: "auto",                               //圖例寬度
      // height: "auto",                              //圖例高度
    };
    const legend = {
      // show: true,                                  //是否顯示
      // zlevel: 0,                                   //所屬圖形的Canvas分層,zlevel 大的 Canvas 會放在 zlevel 小的 Canvas 的上面
      // z: 2,                                         //所屬組件的z分層,z值小的圖形會被z值大的圖形覆蓋
      // left: "center",                              //組件離容器左側的距離,'left', 'center', 'right','20%'
      // top: "top",                                   //組件離容器上側的距離,'top', 'middle', 'bottom','20%'
      // right: "auto",                               //組件離容器右側的距離,'20%'
      // bottom: "auto",                              //組件離容器下側的距離,'20%'
      // width: "auto",                               //圖例寬度
      // height: "auto",                              //圖例高度
      // orient: "horizontal",                        //圖例排列方向
      // align: "auto",                               //圖例標記和文本的對齊,left,right
      // padding: 5,                                   //圖例內邊距,單位px  5  [5, 10]  [5,10,5,10]
      // itemGap: 10,                                  //圖例每項之間的間隔
      // itemWidth: 25,                               //圖例標記的圖形寬度
      // itemHeight: 14,                              //圖例標記的圖形高度
      // formatter: function (name) {                 //用來格式化圖例文本,支持字符串模板和回調函數兩種形式。模板變量為圖例名稱 {name}
      //   return 'Legend ' + name;
      // },
      // selectedMode: "single",                    //圖例選擇的模式,true開啟,false關閉,single單選,multiple多選
      // inactiveColor: "#ccc",                     //圖例關閉時的顏色
      // textStyle: mytextStyle,                    //文本樣式
      data: ['當前特征', '個人特征', '公共特征', '特征畫布'],          //series中根據名稱區分
      // backgroundColor: "transparent",            //標題背景色
      // borderColor: "#ccc",                         //邊框顏色
      // borderWidth: 0,                               //邊框線寬
      // shadowColor: "red",                          //陰影顏色
      // shadowOffsetX: 0,                            //陰影水平方向上的偏移距離
      // shadowOffsetY: 0,                            //陰影垂直方向上的偏移距離
      // shadowBlur: 10,                               //陰影的模糊大小
    };
    const dataZoom = [                                      //區域縮放
      {
        id: 'dataZoomX',
        show: true,                              //是否顯示 組件。如果設置為 false,不會顯示,但是數據過濾的功能還存在。
        backgroundColor: "rgba(47,69,84,0)",  //組件的背景顏色
        type: 'slider',                         //slider表示有滑動塊的,inside表示內置的
        dataBackground: {                        //數據陰影的樣式。
          lineStyle: mylineStyle,              //陰影的線條樣式
          areaStyle: myareaStyle,              //陰影的填充樣式
        },
        fillerColor: "rgba(167,183,204,0.4)",  //選中范圍的填充顏色。
        borderColor: "#ddd",                     //邊框顏色。
        filterMode: 'filter',                   //'filter':當前數據窗口外的數據,被 過濾掉。即 會 影響其他軸的數據范圍。每個數據項,只要有一個維度在數據窗口外,整個數據項就會被過濾掉。
        //'weakFilter':當前數據窗口外的數據,被 過濾掉。即 會 影響其他軸的數據范圍。每個數據項,只有當全部維度都在數據窗口同側外部,整個數據項才會被過濾掉。
        //'empty':當前數據窗口外的數據,被 設置為空。即 不會 影響其他軸的數據范圍。
        //'none': 不過濾數據,只改變數軸范圍。
        xAxisIndex: 0,                            //設置 dataZoom-inside 組件控制的 x軸,可以用數組表示多個軸
        yAxisIndex: [0, 2],                        //設置 dataZoom-inside 組件控制的 y軸,可以用數組表示多個軸
        radiusAxisIndex: 3,                       //設置 dataZoom-inside 組件控制的 radius 軸,可以用數組表示多個軸
        angleAxisIndex: [0, 2],                    //設置 dataZoom-inside 組件控制的 angle 軸,可以用數組表示多個軸
        start: 30,                                //數據窗口范圍的起始百分比,表示30%
        end: 70,                                  //數據窗口范圍的結束百分比,表示70%
        startValue: 10,                           //數據窗口范圍的起始數值
        endValue: 100,                            //數據窗口范圍的結束數值。
        orient: "horizontal",                    //布局方式是橫還是豎。不僅是布局方式,對於直角坐標系而言,也決定了,缺省情況控制橫向數軸還是縱向數軸。'horizontal':水平。'vertical':豎直。
        zoomLock: false,                          //是否鎖定選擇區域(或叫做數據窗口)的大小。如果設置為 true 則鎖定選擇區域的大小,也就是說,只能平移,不能縮放。
        throttle: 100,                             //設置觸發視圖刷新的頻率。單位為毫秒(ms)。
        zoomOnMouseWheel: true,                  //如何觸發縮放。可選值為:true:表示不按任何功能鍵,鼠標滾輪能觸發縮放。false:表示鼠標滾輪不能觸發縮放。'shift':表示按住 shift 和鼠標滾輪能觸發縮放。'ctrl':表示按住 ctrl 和鼠標滾輪能觸發縮放。'alt':表示按住 alt 和鼠標滾輪能觸發縮放。
        moveOnMouseMove: true,                   //如何觸發數據窗口平移。true:表示不按任何功能鍵,鼠標移動能觸發數據窗口平移。false:表示鼠標滾輪不能觸發縮放。'shift':表示按住 shift 和鼠標移動能觸發數據窗口平移。'ctrl':表示按住 ctrl 和鼠標移動能觸發數據窗口平移。'alt':表示按住 alt 和鼠標移動能觸發數據窗口平移。
        left: "center",                           //組件離容器左側的距離,'left', 'center', 'right','20%'
        top: "top",                                //組件離容器上側的距離,'top', 'middle', 'bottom','20%'
        right: "auto",                             //組件離容器右側的距離,'20%'
        bottom: "auto",                            //組件離容器下側的距離,'20%'
      },
      {
        id: 'dataZoomY',
        type: 'inside',
        filterMode: 'empty',
        disabled: false,                         //是否停止組件的功能。
        xAxisIndex: 0,                           //設置 dataZoom-inside 組件控制的 x軸,可以用數組表示多個軸
        yAxisIndex: [0, 2],                       //設置 dataZoom-inside 組件控制的 y軸,可以用數組表示多個軸
        radiusAxisIndex: 3,                      //設置 dataZoom-inside 組件控制的 radius 軸,可以用數組表示多個軸
        angleAxisIndex: [0, 2],                   //設置 dataZoom-inside 組件控制的 angle 軸,可以用數組表示多個軸
        start: 30,                               //數據窗口范圍的起始百分比,表示30%
        end: 70,                                  //數據窗口范圍的結束百分比,表示70%
        startValue: 10,                           //數據窗口范圍的起始數值
        endValue: 100,                            //數據窗口范圍的結束數值。
        orient: "horizontal",                    //布局方式是橫還是豎。不僅是布局方式,對於直角坐標系而言,也決定了,缺省情況控制橫向數軸還是縱向數軸。'horizontal':水平。'vertical':豎直。
        zoomLock: false,                          //是否鎖定選擇區域(或叫做數據窗口)的大小。如果設置為 true 則鎖定選擇區域的大小,也就是說,只能平移,不能縮放。
        throttle: 100,                             //設置觸發視圖刷新的頻率。單位為毫秒(ms)。
        zoomOnMouseWheel: true,                   //如何觸發縮放。可選值為:true:表示不按任何功能鍵,鼠標滾輪能觸發縮放。false:表示鼠標滾輪不能觸發縮放。'shift':表示按住 shift 和鼠標滾輪能觸發縮放。'ctrl':表示按住 ctrl 和鼠標滾輪能觸發縮放。'alt':表示按住 alt 和鼠標滾輪能觸發縮放。
        moveOnMouseMove: true,                    //如何觸發數據窗口平移。true:表示不按任何功能鍵,鼠標移動能觸發數據窗口平移。false:表示鼠標滾輪不能觸發縮放。'shift':表示按住 shift 和鼠標移動能觸發數據窗口平移。'ctrl':表示按住 ctrl 和鼠標移動能觸發數據窗口平移。'alt':表示按住 alt 和鼠標移動能觸發數據窗口平移。
      }
    ];
    const visualMap = [                                     //視覺映射組件,用於進行『視覺編碼』,也就是將數據映射到視覺元素。視覺元素可以是:symbol: 圖元的圖形類別。symbolSize: 圖元的大小。color: 圖元的顏色。
      // colorAlpha: 圖元的顏色的透明度。opacity: 圖元以及其附屬物(如文字標簽)的透明度。colorLightness: 顏色的明暗度。colorSaturation: 顏色的飽和度。colorHue: 顏色的色調。
      {
        show: true,                              //是否顯示 visualMap-continuous 組件。如果設置為 false,不會顯示,但是數據映射的功能還存在
        type: 'continuous',                     // 定義為連續型 viusalMap
        min: 10,                                  //指定 visualMapContinuous 組件的允許的最小值
        max: 100,                                 //指定 visualMapContinuous 組件的允許的最大值
        range: [15, 40],                          //指定手柄對應數值的位置。range 應在 min max 范圍內
        calculable: true,                        //是否顯示拖拽用的手柄(手柄能拖拽調整選中范圍)
        realtime: true,                          //拖拽時,是否實時更新
        inverse: false,                          //是否反轉 visualMap 組件
        precision: 0,                            //數據展示的小數精度,默認為0,無小數點
        itemWidth: 20,                           //圖形的寬度,即長條的寬度。
        itemHeight: 140,                         //圖形的高度,即長條的高度。
        align: "auto",                           //指定組件中手柄和文字的擺放位置.可選值為:'auto' 自動決定。'left' 手柄和label在右。'right' 手柄和label在左。'top' 手柄和label在下。'bottom' 手柄和label在上。
        text: ['High', 'Low'],                   //兩端的文本
        textGap: 10,                              //兩端文字主體之間的距離,單位為px
        dimension: 2,                            //指定用數據的『哪個維度』,映射到視覺元素上。『數據』即 series.data。 可以把 series.data 理解成一個二維數組,其中每個列是一個維度,默認取 data 中最后一個維度
        seriesIndex: 1,                          //指定取哪個系列的數據,即哪個系列的 series.data,默認取所有系列
        hoverLink: true,                         //鼠標懸浮到 visualMap 組件上時,鼠標位置對應的數值 在 圖表中對應的圖形元素,會高亮
        inRange: {                               //定義 在選中范圍中 的視覺元素
          color: ['#121122', 'rgba(3,4,5,0.4)', 'red'],
          symbolSize: [30, 100]
        },
        outOfRange: {  //定義 在選中范圍外 的視覺元素。
          color: ['#121122', 'rgba(3,4,5,0.4)', 'red'],
          symbolSize: [30, 100]
        },
        zlevel: 0,                                   //所屬圖形的Canvas分層,zlevel 大的 Canvas 會放在 zlevel 小的 Canvas 的上面
        z: 2,                                         //所屬組件的z分層,z值小的圖形會被z值大的圖形覆蓋
        left: "center",                              //組件離容器左側的距離,'left', 'center', 'right','20%'
        top: "top",                                   //組件離容器上側的距離,'top', 'middle', 'bottom','20%'
        right: "auto",                               //組件離容器右側的距離,'20%'
        bottom: "auto",                              //組件離容器下側的距離,'20%'
        orient: "vertical",                         //圖例排列方向
        padding: 5,                                   //圖例內邊距,單位px  5  [5, 10]  [5,10,5,10]
        backgroundColor: "transparent",            //標題背景色
        borderColor: "#ccc",                         //邊框顏色
        borderWidth: 0,                               //邊框線寬
        textStyle: mytextStyle,                      //文本樣式
        formatter: function (value) {                 //標簽的格式化工具。
          return 'aaaa' + value;                    // 范圍標簽顯示內容。
        }
      },
      {
        show: true,                          //是否顯示 visualMap-continuous 組件。如果設置為 false,不會顯示,但是數據映射的功能還存在
        type: 'piecewise',                  // 定義為分段型 visualMap
        splitNumber: 5,                      //對於連續型數據,自動平均切分成幾段。默認為5段
        pieces: [                           //自定義『分段式視覺映射組件(visualMapPiecewise)』的每一段的范圍,以及每一段的文字,以及每一段的特別的樣式
          { min: 1500 },                     // 不指定 max,表示 max 為無限大(Infinity)。
          { min: 900, max: 1500 },
          { min: 310, max: 1000 },
          { min: 200, max: 300 },
          { min: 10, max: 200, label: '10 到 200(自定義label)' },
          { value: 123, label: '123(自定義特殊顏色)', color: 'grey' }, // 表示 value 等於 123 的情況。
          { max: 5 }                        // 不指定 min,表示 min 為無限大(-Infinity)。
        ],
        categories: ['嚴重污染', '重度污染', '中度污染', '輕度污染', '良', '優'],  //用於表示離散型數據(或可以稱為類別型數據、枚舉型數據)的全集
        min: 10,                             //指定 visualMapContinuous 組件的允許的最小值
        max: 100,                             //指定 visualMapContinuous 組件的允許的最大值
        minOpen: true,                       //界面上會額外多出一個『< min』的選塊
        maxOpen: true,                       //界面上會額外多出一個『> max』的選塊。
        selectedMode: "multiple",           //選擇模式,可以是:'multiple'(多選)。'single'(單選)。
        inverse: false,                      //是否反轉 visualMap 組件
        precision: 0,                        //數據展示的小數精度,默認為0,無小數點
        itemWidth: 20,                       //圖形的寬度,即長條的寬度。
        itemHeight: 140,                     //圖形的高度,即長條的高度。
        align: "auto",                       //指定組件中手柄和文字的擺放位置.可選值為:'auto' 自動決定。'left' 手柄和label在右。'right' 手柄和label在左。'top' 手柄和label在下。'bottom' 手柄和label在上。
        text: ['High', 'Low'],               //兩端的文本
        textGap: 10,                          //兩端文字主體之間的距離,單位為px
        showLabel: true,                     //是否顯示每項的文本標簽
        itemGap: 10,                          //每兩個圖元之間的間隔距離,單位為px
        itemSymbol: "roundRect",             //默認的圖形。可選值為: 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
        dimension: 2,                          //指定用數據的『哪個維度』,映射到視覺元素上。『數據』即 series.data。 可以把 series.data 理解成一個二維數組,其中每個列是一個維度,默認取 data 中最后一個維度
        seriesIndex: 1,                        //指定取哪個系列的數據,即哪個系列的 series.data,默認取所有系列
        hoverLink: true,                      //鼠標懸浮到 visualMap 組件上時,鼠標位置對應的數值 在 圖表中對應的圖形元素,會高亮
        inRange: {                             //定義 在選中范圍中 的視覺元素
          color: ['#121122', 'rgba(3,4,5,0.4)', 'red'],
          symbolSize: [30, 100]
        },
        outOfRange: {                            //定義 在選中范圍外 的視覺元素。
          color: ['#121122', 'rgba(3,4,5,0.4)', 'red'],
          symbolSize: [30, 100]
        },
        zlevel: 0,                                   //所屬圖形的Canvas分層,zlevel 大的 Canvas 會放在 zlevel 小的 Canvas 的上面
        z: 2,                                         //所屬組件的z分層,z值小的圖形會被z值大的圖形覆蓋
        left: "center",                              //組件離容器左側的距離,'left', 'center', 'right','20%'
        top: "top",                                   //組件離容器上側的距離,'top', 'middle', 'bottom','20%'
        right: "auto",                               //組件離容器右側的距離,'20%'
        bottom: "auto",                              //組件離容器下側的距離,'20%'
        orient: "vertical",                        //圖例排列方向
        padding: 5,                                   //圖例內邊距,單位px  5  [5, 10]  [5,10,5,10]
        backgroundColor: "transparent",            //標題背景色
        borderColor: "#ccc",                         //邊框顏色
        borderWidth: 0,                               //邊框線寬
        textStyle: mytextStyle,                      //文本樣式
        formatter: function (value) {                //標簽的格式化工具。
          return 'aaaa' + value;                   // 范圍標簽顯示內容。
        }
      }
    ];
    const mytextStyle = {
      color: "#333",               //文字顏色
      fontStyle: "normal",         //italic斜體  oblique傾斜
      fontWeight: "normal",        //文字粗細bold   bolder   lighter  100 | 200 | 300 | 400...
      fontFamily: "sans-serif",    //字體系列
      fontSize: 18,                  //字體大小
    };
    const mylineStyle = {
      color: "#333",               //顏色,'rgb(128, 128, 128)','rgba(128, 128, 128, 0.5)',支持線性漸變,徑向漸變,紋理填充
      shadowColor: "red",          //陰影顏色
      shadowOffsetX: 0,            //陰影水平方向上的偏移距離。
      shadowOffsetY: 0,            //陰影垂直方向上的偏移距離
      shadowBlur: 10,              //圖形陰影的模糊大小。
      type: "solid",               //坐標軸線線的類型,solid,dashed,dotted
      width: 1,                    //坐標軸線線寬
      opacity: 1,                  //圖形透明度。支持從 0 到 1 的數字,為 0 時不繪制該圖形
    };
    const myareaStyle = {
      color: ['rgba(250,250,250,0.3)', 'rgba(200,200,200,0.3)'],//分隔區域顏色。分隔區域會按數組中顏色的順序依次循環設置顏色。默認是一個深淺的間隔色。
      shadowColor: "red",          //陰影顏色
      shadowOffsetX: 0,            //陰影水平方向上的偏移距離。
      shadowOffsetY: 0,            //陰影垂直方向上的偏移距離
      shadowBlur: 10,              //圖形陰影的模糊大小。
      opacity: 1,                  //圖形透明度。支持從 0 到 1 的數字,為 0 時不繪制該圖形
    };
    const myitemStyle = {
      color: "blue",                 //顏色
      borderColor: "#000",         //邊框顏色
      borderWidth: 0,              //柱條的描邊寬度,默認不描邊。
      borderType: "solid",         //柱條的描邊類型,默認為實線,支持 'dashed', 'dotted'。
      barBorderRadius: 0,          //柱形邊框圓角半徑,單位px,支持傳入數組分別指定柱形4個圓角半徑。
      shadowBlur: 10,              //圖形陰影的模糊大小。
      shadowColor: "#000",         //陰影顏色
      shadowOffsetX: 0,            //陰影水平方向上的偏移距離。
      shadowOffsetY: 0,            //陰影垂直方向上的偏移距離。
      opacity: 1,                  //圖形透明度。支持從 0 到 1 的數字,為 0 時不繪制該圖形。
    };
    const mylabel = {
      show: false,                  //是否顯示標簽。
      position: "inside",          //標簽的位置。// 絕對的像素值[10, 10],// 相對的百分比['50%', '50%'].'top','left','right','bottom','inside','insideLeft','insideRight','insideTop','insideBottom','insideTopLeft','insideBottomLeft','insideTopRight','insideBottomRight'
      offset: [30, 40],             //是否對文字進行偏移。默認不偏移。例如:[30, 40] 表示文字在橫向上偏移 30,縱向上偏移 40。
      formatter: '{b}: {c}',       //標簽內容格式器。模板變量有 {a}、{b}、{c},分別表示系列名,數據名,數據值。
      textStyle: mytextStyle
    };
    const mypoint = {
      symbol: "pin",               //圖形 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
      symbolSize: 50,              //標記的大小,可以設置成諸如 10 這樣單一的數字,也可以用數組分開表示寬和高,例如 [20, 10] 表示標記寬為20,高為10。
      symbolRotate: 0,             //標記的旋轉角度。注意在 markLine 中當 symbol 為 'arrow' 時會忽略 symbolRotate 強制設置為切線的角度。
      symbolOffset: [0, 0],         //標記相對於原本位置的偏移。默認情況下,標記會居中置放在數據對應的位置
      silent: false,               //圖形是否不響應和觸發鼠標事件,默認為 false,即響應和觸發鼠標事件。
      label: {
        normal: mylabel,
        emphasis: mylabel
      },
      itemStyle: {
        normal: myitemStyle,
        emphasis: myitemStyle
      }
    };
    const myline = {
      symbol: ["pin", "circle"],    //圖形 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
      symbolSize: 50,              //標記的大小,可以設置成諸如 10 這樣單一的數字,也可以用數組分開表示寬和高,例如 [20, 10] 表示標記寬為20,高為10。
      precision: 2,                //標線數值的精度,在顯示平均值線的時候有用。
      silent: false,               //圖形是否不響應和觸發鼠標事件,默認為 false,即響應和觸發鼠標事件。
      label: {
        normal: mylabel,
        emphasis: mylabel
      },
      lineStyle: {
        normal: mylineStyle,
        emphasis: mylineStyle
      }
    };
    const myarea = {
      silent: false,               //圖形是否不響應和觸發鼠標事件,默認為 false,即響應和觸發鼠標事件。
      label: {
        normal: mylabel,
        emphasis: mylabel
      },
      itemStyle: {
        normal: myitemStyle,
        emphasis: myitemStyle
      }
    };
    return {
      options: {
        title: title,// 標題設置
        tooltip: tooltip,// 節點懸浮提示
        // toolbox: toolbox,// 切換下載
        legend: legend,// 分組篩選提示
        // dataZoom: dataZoom,// 可縮放
        // visualMap: visualMap,// 地圖映射
        animationDurationUpdate: 1500, // 動畫的時長。
        animationEasingUpdate: 'quinticInOut', // 動畫的加載效果
        // hasChanged: false,
        // flag: false,
        series: [
          {
            type: "graph",               //關系圖
            // zlevel: 0,                   //柱狀圖所有圖形的 zlevel 值。
            // z: 2,                         //柱狀圖組件的所有圖形的z值。控制圖形的前后順序。z值小的圖形會被z值大的圖形覆蓋。
            // left: "10%",                 //組件離容器左側的距離,百分比字符串或整型數字
            top: '15%',                      //組件離容器上側的距離,百分比字符串或整型數字
            // right: "auto",               //組件離容器右側的距離,百分比字符串或整型數字
            bottom: "15%",              //組件離容器下側的距離,百分比字符串或整型數字
            // width: "auto",               //圖例寬度
            // height: "auto",              //圖例高度
            // silent: false,               //圖形是否不響應和觸發鼠標事件,默認為 false,即響應和觸發鼠標事件。
            // name: "公共特征",            //系列名稱,用於tooltip的顯示,legend 的圖例篩選,在 setOption 更新數據和配置項時用於指定對應的系列。
            // legendHoverLink: true,       //是否啟用圖例 hover 時的聯動高亮。
            // hoverAnimation: true,        //是否開啟鼠標 hover 節點的提示動畫效果。
            // coordinateSystem: null,      //null無坐標系,'cartesia個人特征d'使用二維的直角坐標系。'geo'使用地理坐標系,'polar'使用極坐標系
            // xAxisIndex: 0,                //使用的 x 軸的 index,在單個圖表實例中存在多個 x 軸的時候有用。
            // yAxisIndex: 0,                //使用的 y 軸的 index,在單個圖表實例中存在多個 y軸的時候有用。
            // polarIndex: 0,                //使用的極坐標系的 index,在單個圖表實例中存在多個極坐標系的時候有用。
            // geoIndex: 0,                  //使用的地理坐標系的 index,在單個圖表實例中存在多個地理坐標系的時候有用。
            // calendarIndex: 0,            //使用的日歷坐標系的 index,在單個圖表實例中存在多個日歷坐標系的時候有用。
            layout: 'circular',              //'none' 不采用任何布局,使用節點中提供的 x, y 作為節點的位置.'circular' 采用環形布局,'force' 采用力引導布局。
            //circular:{},               //環形布局相關配置
            //force:{},                  //力引導布局相關的配置項
            roam: true,                 //是否開啟鼠標縮放和平移漫游。默認不開啟。如果只想要開啟縮放或者平移,可以設置成 'scale' 或者 'move'。設置成 true 為都開啟
            nodeScaleRatio: 0.6,         //鼠標漫游縮放時節點的相應縮放比例,當設為0時節點不隨着鼠標的縮放而縮放
            // draggable: true,            //節點是否可拖拽,只在使用力引導布局的時候有用。
            // focusNodeAdjacency: true,   //是否在鼠標移到節點上的時候突出顯示節點以及節點的邊和鄰接節點。放大
            symbol: "circle",               //圖形 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
            symbolSize: 50,              //標記的大小,可以設置成諸如 10 這樣單一的數字,也可以用數組分開表示寬和高,例如 [20, 10] 表示標記寬為20,高為10。
            // symbolRotate: 0,             //標記的旋轉角度。注意在 markLine 中當 symbol 為 'arrow' 時會忽略 symbolRotate 強制設置為切線的角度。
            // symbolOffset: [0, 0],         //標記相對於原本位置的偏移。默認情況下,標記會居中置放在數據對應的位置
            edgeSymbol: ['', 'arrow'],//邊兩端的標記類型,可以是一個數組分別指定兩端,也可以是單個統一指定。默認不顯示標記,常見的可以設置為箭頭
            // edgeSymbolSize: [5, 2],       //邊兩端的標記大小,可以是一個數組分別指定兩端,也可以是單個統一指定。
            cursor: "pointer",           //鼠標懸浮時在圖形元素上時鼠標的樣式是什么。同 CSS 的 cursor。
            label: {                      //圖形上的文本標簽,可用於說明圖形的一些數據信息,比如值,名稱等,
              // normal: mylabel,
              // emphasis: mylabel
            },
            edgeLabel: { // 顯示線中間的標簽
              // show: true,
              // normal: mylabel,
              // emphasis: mylabel
            },
            emphasis: { // 懸浮出現的高亮的圖形樣式。
              // lineStyle: mylineStyle,
              // itemStyle: myitemStyle,
              // label: mylineStyle,
              // edgeLabel: mylineStyle,
            },
            itemStyle: {                 //圖形樣式,normal 是圖形在默認狀態下的樣式;emphasis 是圖形在高亮狀態下的樣式,比如在鼠標懸浮或者圖例聯動高亮時。
              // normal: myitemStyle,
              // emphasis: myitemStyle,
            },
            lineStyle: {                 //圖形樣式,normal 是圖形在默認狀態下的樣式;emphasis 是圖形在高亮狀態下的樣式,比如在鼠標懸浮或者圖例聯動高亮時。
              // normal: mylineStyle,
              // emphasis: mylineStyle,
            },
            categories: [                //節點分類的類目,可選。
              {
                name: "當前特征",    //類目名稱
                // symbol: "circle",       //圖形 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
                // symbolSize: 50,      //標記的大小,可以設置成諸如 10 這樣單一的數字,也可以用數組分開表示寬和高,例如 [20, 10] 表示標記寬為20,高為10。
                // symbolRotate: 0,     //標記的旋轉角度。注意在 markLine 中當 symbol 為 'arrow' 時會忽略 symbolRotate 強制設置為切線的角度。
                // symbolOffset: [0, 0], //標記相對於原本位置的偏移。默認情況下,標記會居中置放在數據對應的位置
                // label: {              //圖形上的文本標簽,可用於說明圖形的一些數據信息,比如值,名稱等,
                //   normal: mylabel,
                //   emphasis: mylabel
                // },
                // itemStyle: {         //圖形樣式,normal 是圖形在默認狀態下的樣式;emphasis 是圖形在高亮狀態下的樣式,比如在鼠標懸浮或者圖例聯動高亮時。
                //   normal: myitemStyle,
                //   emphasis: myitemStyle,
                // },
              },
              {
                name: "個人特征",    //類目名稱
                // symbol: "rect",       //圖形 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
                // symbolSize: 50,      //標記的大小,可以設置成諸如 10 這樣單一的數字,也可以用數組分開表示寬和高,例如 [20, 10] 表示標記寬為20,高為10。
                // symbolRotate: 0,     //標記的旋轉角度。注意在 markLine 中當 symbol 為 'arrow' 時會忽略 symbolRotate 強制設置為切線的角度。
                // symbolOffset: [0, 0], //標記相對於原本位置的偏移。默認情況下,標記會居中置放在數據對應的位置
                // label: {              //圖形上的文本標簽,可用於說明圖形的一些數據信息,比如值,名稱等,
                //   normal: mylabel,
                //   emphasis: mylabel
                // },
                // itemStyle: {         //圖形樣式,normal 是圖形在默認狀態下的樣式;emphasis 是圖形在高亮狀態下的樣式,比如在鼠標懸浮或者圖例聯動高亮時。
                //   normal: myitemStyle,
                //   emphasis: myitemStyle,
                // },
              },
              {
                name: "公共特征",    //類目名稱
                // symbol: "roundRect",       //圖形 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
                // symbolSize: 50,      //標記的大小,可以設置成諸如 10 這樣單一的數字,也可以用數組分開表示寬和高,例如 [20, 10] 表示標記寬為20,高為10。
                // symbolRotate: 0,     //標記的旋轉角度。注意在 markLine 中當 symbol 為 'arrow' 時會忽略 symbolRotate 強制設置為切線的角度。
                // symbolOffset: [0, 0], //標記相對於原本位置的偏移。默認情況下,標記會居中置放在數據對應的位置
                // label: {              //圖形上的文本標簽,可用於說明圖形的一些數據信息,比如值,名稱等,
                //   normal: mylabel,
                //   emphasis: mylabel
                // },
                // itemStyle: {         //圖形樣式,normal 是圖形在默認狀態下的樣式;emphasis 是圖形在高亮狀態下的樣式,比如在鼠標懸浮或者圖例聯動高亮時。
                //   normal: myitemStyle,
                //   emphasis: myitemStyle,
                // },
              },
              {
                name: "特征畫布",    //類目名稱
                // symbol: "pin",       //圖形 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
                // symbolSize: 50,      //標記的大小,可以設置成諸如 10 這樣單一的數字,也可以用數組分開表示寬和高,例如 [20, 10] 表示標記寬為20,高為10。
                // symbolRotate: 0,     //標記的旋轉角度。注意在 markLine 中當 symbol 為 'arrow' 時會忽略 symbolRotate 強制設置為切線的角度。
                // symbolOffset: [0, 0], //標記相對於原本位置的偏移。默認情況下,標記會居中置放在數據對應的位置
                // label: {              //圖形上的文本標簽,可用於說明圖形的一些數據信息,比如值,名稱等,
                //   normal: mylabel,
                //   emphasis: mylabel
                // },
                // itemStyle: {         //圖形樣式,normal 是圖形在默認狀態下的樣式;emphasis 是圖形在高亮狀態下的樣式,比如在鼠標懸浮或者圖例聯動高亮時。
                //   normal: myitemStyle,
                //   emphasis: myitemStyle,
                // },
              },
            ],
            data: [                     //data就是node
              {
                name: '當前特征',
                // x: 100,
                // y: 100,
                // value: 20,
                // symbolSize: 20,
                itemStyle: {
                  normal: {
                    color: 'blank'
                  }
                }
              }, {
                name: '個人特征',
                // x: 100,
                // y: 100,
                // value: 20,
                // symbolSize: 20,
                itemStyle: {
                  normal: {
                    color: '#15a4fa'
                  }
                }
              }, {
                name: '公共特征',
                // x: 100,
                // y: 100,
                // value: 20,
                // symbolSize: 20,
                itemStyle: {
                  color: 'blue'
                }
              }, {
                name: '特征畫布',
                // x: 100,
                // y: 100,
                // value: 20,
                // symbolSize: 100,
                itemStyle: {
                  color: 'red'
                }
              }
            ],
            links: [                 //links就是edges
              {
                source: '當前特征',
                target: '個人特征'
              }, {
                source: '當前特征',
                target: '公共特征'
              }, {
                source: '當前特征',
                target: '特征畫布'
              }
            ],
            //markPoint:同bar
            //markLine:同bar
            //markArea:同bar
            // tooltip: tooltip
          },
        ]
      }
    };
  },
  mounted () { }
}
</script>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM