Echarts中Option屬性設定

落花桂發表於2021-09-11

一、title--標題元件

標題元件,包含主標題和副標題。

title:{
	x:"left",    // 'left' | 'right' | 'center' | '100px'
	y:"4%",     // 'top' | 'bottom' | 'center' | '100px'
    // 標題
    show: true, //是否顯示
    text: "標題內容",
    textStyle: {
      color: "#fff", // 主標題文字的顏色。
      fontStyle: "normal", // 主標題文字字型的風格。 'normal'  'italic'  'oblique'
      fontWeight: "normal", // 主標題文字字型的粗細。 'normal' 'bold'  'bolder'  'lighter' 500|600
      fontFamily: "sans-serif", // 主標題文字的字型系列。
      fontSize: 18, // 字型大小
      lineHeight: "30", // 行高
      // width ... , // 文字塊的寬度
      // height ... , // 文字塊的高度
      textBorderColor: "transparent", // 文字本身的描邊顏色。
      textBorderWidth: 0, // 文字本身的描邊寬度。
      textShadowColor: "transparent", // 文字本身的陰影顏色。
      textShadowBlur: 0, // 文字本身的陰影長度。
      textShadowOffsetX: 0, // 文字本身的陰影 X 偏移。
      textShadowOffsetY: 0, //  文字本身的陰影 Y 偏移。
    },
    subtext: "bb", // 副標題文字
    subtextStyle: {
      color: "red",
      fontSize: "16",
    },   //副標題樣式
    textAlign: "auto", //水平對齊'auto'、'left'、'right'、'center'
    textVerticalAlign: "auto", // 垂直對齊  'auto'、'top'、'bottom'、'middle'
    triggerEvent: false, // 是否觸發事件
    padding: 5, // 標題內邊距  5/[5,2,4,7]
    itemGap: 10, //主副標題之間的間距
    left: 10, // 距離 left top right bottom
    x: "center",  // 水平安放位置,預設為左對齊,可選為:'center' ¦ 'left' ¦ 'right' ¦ {number}(x座標,單位px)
    y: "4%",      // 垂直安放位置,預設為全圖頂端,可選為:// 'top' ¦ 'bottom' ¦ 'center'¦ {number}(y座標,單位px)
    backgroundColor: "pink", // 標題背景色
    borderColor: "#ccc", // 標題的邊框顏色
    borderWidth: 5, // 標題的邊框線寬。
    borderRadius: 2, // 圓角半徑
    shadowBlur: 10, //圖形陰影的模糊大小
    shadowColor: "rgba(0, 0, 0, 0.5)", // 陰影顏色
    shadowOffsetX: 5, // 陰影水平方向上的偏移距離。
    shadowOffsetY: 5, //陰影垂直方向上的偏移距離。
}

二、legend--圖例元件

圖例元件,展現了不同系列的標記(symbol),顏色和名字。可以通過點選圖例控制哪些系列不顯示。

        legend: {
          show: true, //是否顯示
          type: "plain", // 圖例的型別 'plain':普通圖例  'scroll':可滾動翻頁的圖例
          zlevel: 1, // 所有圖形的 zlevel 值。
          icon: "circle",
          top: "5%", // bottom:"20%" // 元件離容器的距離
          right: "5%", //left:"10%"  // // 元件離容器的距離
          width: "auto", // 圖例元件的寬度
          height: "auto", // 圖例元件的高度
          orient: "horizontal", // 圖例列表的佈局朝向。 'horizontal'  'vertical'
          align: "auto", // 圖例標記和文字的對齊
          padding: 5, // 圖例內邊距
          itemWidth: 6, // 圖例標記的圖形寬度。
          itemGap: 20, // 圖例每項之間的間隔。
          itemHeight: 14, //  圖例標記的圖形高度。
          symbolKeepAspect: true, // 如果圖示(可能來自系列的 symbol 或使用者自定義的 legend.data.icon)是 path:// 的形式,是否在縮放時保持該圖形的長寬比。
          formatter: function (name) {
            return '{a|text}{a|   }{b|' +  name + '}'
          },
          selectedMode: true, // 圖例選擇的模式,
          inactiveColor: "#ccc", // 圖例關閉時的顏色。
          textStyle: {
            color: "#556677", // 文字的顏色。
            fontStyle: "normal", // 文字字型的風格。
            fontWeight: "normal", // 文字字型的粗細。 'normal' 'bold'  'bolder' 'lighter'  100 | 200 | 300 | 400...
            fontFamily: "sans-serif", // 文字的字型系列。
            fontSize: 12, // 文字的字型大小。
            lineHeight: 20, // 行高。
            backgroundColor: "transparent", // 文字塊背景色。
            borderColor: "transparent", // 文字塊邊框顏色。
            borderWidth: 0, // 文字塊邊框寬度。
            borderRadius: 0, // 文字塊的圓角。
            padding: 0, // 文字塊的內邊距
            shadowColor: "transparent", // 文字塊的背景陰影顏色
            shadowBlur: 0, // 文字塊的背景陰影長度。
            shadowOffsetX: 0, // 文字塊的背景陰影 X 偏移。
            shadowOffsetY: 0, // 文字塊的背景陰影 Y 偏移。
            // width: 50, // 文字塊的寬度。 預設
            // height: 40, // 文字塊的高度 預設
            textBorderColor: "transparent", // 文字本身的描邊顏色。
            textBorderWidth: 0, // 文字本身的描邊寬度。
            textShadowColor: "transparent", // 文字本身的陰影顏色。
            textShadowBlur: 0, // 文字本身的陰影長度。
            textShadowOffsetX: 0, // 文字本身的陰影 X 偏移。
            textShadowOffsetY: 0, // 文字本身的陰影 Y 偏移。
            rich: {
            a: {
              color: "red",
              lineHeight: 10,
            },
             b: {
              color: "#fff",
              lineHeight: 10,
            },
          }, // 自定富文字樣式
          },
        },

三、tooltip--提示框元件

提示框元件,可以設定在多種地方:

可以設定在全域性,即 tooltip
可以設定在座標系中,即 grid.tooltip、polar.tooltip、single.tooltip
可以設定在系列中,即 series.tooltip
可以設定在系列的每個資料項中,即 series.data.tooltip

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:"{b0}: {c0}<br />{b1}: {c1}", //提示框浮層內容格式器,支援字串模板和回撥函式兩種形式,模板變數有 {a}, {b},{c},{d},{e},分別表示系列名,資料名,資料值等
    backgroundColor:"transparent",          //標題背景色
    borderColor:"#ccc",                     //邊框顏色
    borderWidth:0,                          //邊框線寬
    padding:5,                              //圖例內邊距,單位px  5  [5, 10]  [5,10,5,10]
    textStyle:mytextStyle,                  //文字樣式
    axisPointer: {                          // 滑鼠放在
      type: 'cross', //預設為line,line直線,cross十字準星,shadow陰影
      crossStyle: {
              color: '#fff'
      }
    },
    formatter: function (value) {
      for (var i = 0; i < value.length; i++) {
        return (
          value[i].seriesName +
          "<br/>" +
          value[i].name +
          unit +
          ":" +
          value[i].value +
          "%"
        );
      }
    },
};

四、grid--可用於調整圖例在整個容器中的佔位

直角座標系內繪圖網格,單個 grid 內最多可以放置上下兩個 X 軸,左右兩個 Y 軸。可以在網格上繪製折線圖,柱狀圖,散點圖(氣泡圖)。
也可用於調整圖例在整個容器中的佔位

在 ECharts 2.x 裡單個 echarts 例項中最多隻能存在一個 grid 元件,在 ECharts 3 中可以存在任意個 grid 元件。

grid:{
	x: 80,   //top:"15%" | right:"3%" | left:"2%" | bottom:"12%"
    y: 60,
    x2: 80,
    y2: 60,
    // width: {totalWidth} - x - x2,
    // height: {totalHeight} - y - y2,
    backgroundColor: ‘rgba(0,0,0,0)‘,
    borderWidth: 1,
    borderColor: '#ccc',
    containLabel: true, //防止座標軸標籤溢位
}

五、xAxis--x 軸

直角座標系 grid 中的 x 軸,一般情況下單個 grid 元件最多隻能放上下兩個 x 軸,多於兩個 x 軸需要通過配置 offset 屬性防止同個位置多個 x 軸的重疊。

xAxis: {
  boundaryGap: false,// 刻度離縱軸有無間隙,預設true有間距
  type: 'category', //'value' 數值軸,適用於連續資料。 'category' 類目軸,適用於離散的類目資料,為該型別時必須通過 data 設定類目資料。 'time' 時間軸,適用於連續的時序資料,與數值軸相比時間軸帶有時間的格式化,在刻度計算上也有所不同,例如會根據跨度的範圍來決定使用月,星期,日還是小時範圍的刻度。 'log' 對數軸。適用於對數資料。
  position:'bottom',  // 'bottom' | 'top'
  name: '(ETD)',// 橫軸名稱
  nameTextStyle:{
    fontSize:12,
    fontWeight:'bold',
    color:'#ff0033',
    //align:'left',
  },
  nameLocation:'middle',//座標軸的位置 'start' | 'center' | 'end'
  nameGap:50,//座標軸名稱與軸線之間的距離
  nameRotate:90,//座標軸名字旋轉角度值,
  axisLabel : {//座標軸刻度標籤的相關設定。
      // clickable:true,//並給圖表新增單擊事件  根據返回值判斷點選的是哪裡
      interval: 0,
      inside:false, //  標籤朝內還是朝外
      rotate: 40,// 文字傾斜度
      textStyle:{
      	color:'#fff,
      	fontSize:'20px',
      	align:'center'
      }
  },
  axisLine:{
    lineStyle:{
      color:'red'   //x軸顏色
    },
    symbol:['none','arrow'], //軸線兩邊的箭頭
    symbolSize:[8, 12]  //箭頭大小
  },
  data: ['2020-07-08 週三','2020-07-09 週四',].map((str) => {
      return str.replace(' ','\n')
  }),// 橫軸座標值
  // data: [{value:'1',textStyle:{
            color:'#ff0033',
        }}, '2/7', '3', '4', '5', '6', '7']//每一項也可以是具體的配置項,此時取配置項中的 `value` 為類目名
  splitLine: {
  	show: false,
  	lineStyle:{  //屬性lineStyle(詳見lineStyle)控制線條樣式
		color:['#ccc'],
		width:1,
		type:'solid'
	}
  },  // 取消X軸的網格
  splitArea:{   //分隔區域
    show:true,
    areaStyle:{
		color:['rgba(250,250,250,0.3)','rgba(200,200,200,0.3)'],
	}
  },
  axisTick: {  // 顯示隱藏刻度線
   inside:true, //刻度朝內還是朝外
   alignWithLabel: true   // 刻度線是否顯示
  }
}

六、yAxis-y 軸

直角座標系 grid 中的 y 軸,一般情況下單個 grid 元件最多隻能放左右兩個 y 軸,多於兩個 y 軸需要通過配置 offset 屬性防止同個位置多個 Y 軸的重疊。

yAxis: {
   type: 'value',
   name: "         金額( 單位: 萬元 )",
   nameTextStyle: {
     color: '#ffffff'
   },
   axisLine: {
     show: false,
     lineStyle: {
       type: 'dashed',
       color: 'rgba(135,140,147,0.8)'
     },
     axisLabel: {
       show: true,
       textStyle: {
         color: "#fff",
         fontSize: "16",
       },
       formatter:function(value){     //設定Y軸顯示的名字,超出做..隱藏
         var res = value;
         if(res.length >7){
           res = res.substring(0,6) + ".."
         }
         return res;
       }
     },
   },
   splitLine: {
     show: true,
     lineStyle: {
       type: 'dashed',   //背景線為虛線
       color: 'rgba(135,140,147,.8)' //左側顯示線
     }
   },
   axisLabel: {
     formatter: '{value}',
     color: '#fff',
     fontSize: 14
   }
 },

七、series-line--折線/面積圖

折線圖是用折線將各個資料點標誌連線起來的圖表,用於展現資料的變化趨勢。可用於直角座標系和極座標系上。

line: {
	  itemStyle: {
	       normal: {
	           // color: 各異,
	           label: {
	               show: false
	               // position: 預設自適應,水平佈局為'top',垂直佈局為'right',可選為
	               //           'inside'|'left'|'right'|'top'|'bottom'
	               // textStyle: null      // 預設使用全域性文字樣式,詳見TEXTSTYLE
	           },
	           lineStyle: {
	               width: 2,
	               type: 'solid',
	               	normal: {
	               	//線的漸變顏色
		                color: new echarts.graphic.LinearGradient(0, 0, 0, 0.7, [        
		                  {
		                    offset: 0,
		                    color: "#24D5CC",
		                  },
		                  {
		                    offset: 1,
		                    color: "#7A50F1",
		                  },
		                ]),
		                opacity: 0.75,
		              },
	               shadowColor: 'rgba(0,0,0,0)', //預設透明  陰影
	               shadowBlur: 5,
	               shadowOffsetX: 3,
	               shadowOffsetY: 3
	           },
	           itemStyle: {
	              normal: {
	                lineStyle: {
	                  width: 3, //設定線條粗細
	                },
	              },
	            },
	          areaStyle: {   //折線圖覆蓋面積
                  color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
                    {
                      offset: 0,
                      color: "rgba(255,80,124,0)",
                    },
                    {
                      offset: 1,
                      color: "rgba(255,80,124,0.35)",
                    },
                  ]),    //漸變色
                },
	       },
	       emphasis: {   // 滑鼠移入
	           // color: 各異,
	           label: {
	               show: false
	               // position: 預設自適應,水平佈局為'top',垂直佈局為'right',可選為
	               //           'inside'|'left'|'right'|'top'|'bottom'
	               // textStyle: null      // 預設使用全域性文字樣式,詳見TEXTSTYLE
	           }
	       }
	   },
	   //smooth : false,  //是否平滑
	   //symbol: null,         // 拐點圖形型別,可以自己設定圖片
	   symbolSize: 2, // 拐點圖形大小
	   symbolOffset: ["0", "-8"],//拐點位置
	   //symbolRotate : null,  // 拐點圖形旋轉控制
	   showAllSymbol: false // 標誌圖形預設只有主軸顯示(隨主軸標籤間隔隱藏策略)
},

八、series-bar--柱狀圖

柱狀圖(或稱條形圖)是一種通過柱形的高度(橫向的情況下則是寬度)來表現資料大小的一種常用圖表型別。

bar:{
	barMinHeight: 0, // 最小高度改為0
    // barWidth: null,        // 預設自適應
    barGap: '30%', // 柱間距離,預設為柱形寬度的30%,可設固定值
    barCategoryGap: '20%', // 類目間柱形距離,預設為類目間距的20%,可設固定值
    itemStyle: {
        normal: {
            // color: '各異',
            barBorderColor: '#fff', // 柱條邊線
            barBorderRadius: 0, // 柱條邊線圓角,單位px,預設為0
            barBorderWidth: 1, // 柱條邊線線寬,單位px,預設為1
            label: {  //z柱狀圖上顯示數字
                show: false
                // position: 預設自適應,水平佈局為'top',垂直佈局為'right',可選為
                //           'inside'|'left'|'right'|'top'|'bottom'
                // textStyle: null      // 預設使用全域性文字樣式,詳見TEXTSTYLE
            }
        },
        emphasis: {   // 滑鼠移入的樣式
            // color: '各異',
            barBorderColor: 'rgba(0,0,0,0)', // 柱條邊線
            barBorderRadius: 0, // 柱條邊線圓角,單位px,預設為0
            barBorderWidth: 1, // 柱條邊線線寬,單位px,預設為1
            label: {
                show: false
                // position: 預設自適應,水平佈局為'top',垂直佈局為'right',可選為
                //           'inside'|'left'|'right'|'top'|'bottom'
                // textStyle: null      // 預設使用全域性文字樣式,詳見TEXTSTYLE
            }
        }
    }
}

九、series-pie--餅圖

餅圖主要用於表現不同類目的資料在總和中的佔比。每個的弧度表示資料數量的比例。
從 ECharts v4.6.0 版本起,我們提供了 'labelLine' 與 'edge' 兩種新的佈局方式。詳情參見 label.alignTo。

// 橫向柱狀圖
series: [
          {
            type: "pie",
            radius: ["45%", "60%"],
            center: this.center,
            data: echartData,
            hoverAnimation: false,
            itemStyle: {
              normal: {
                borderColor: bgColor,
                borderWidth: 2
              }
            },
            labelLine: {
              normal: {
                length: 20,
                // length2: 100,
                lineStyle: {
                  color: "#999"
                }
              }
            },
            label: {
              normal: {
              //https://echarts.apache.org/zh/option.html#grid.tooltip.formatter
              //{a},{b},{c},{d}各代表不同的值
              // formatter: "{font|{b}}\n{hr|}\n{font|{d}%}",
                formatter: params => {
                  return (
                    "{icon|●}{name|" +
                    params.name +
                    "}{value|" +
                    formatNumber(params.value) +
                    "}"
                  );
                },
                padding: [0, 0, 0, 0],
                rich: {
                  icon: {
                    fontSize: 16
                  },
                  name: {
                    fontSize: 14,
                    padding: [0, 10, 0, 4],
                    color: "#666"
                  },
                  value: {
                    fontSize: 16,
                    fontWeight: "bold",
                    color: "#666"
                  },
                  hr: {
                    height: 0,
                    borderWidth: 1,
                    width: "100%",
                    borderColor: "#999"
                  }
                }
              }
            }
          }
        ]
 

相關文章