天天看點

如何使你的Echarts圖表更具有觀賞性和實用性?

前言

前面有文章,講述了Vue中封裝Echarts元件,但都是直接上代碼,沒有具體對代碼進行講述。今天我們就來看看,如何使Echarts圖表更美觀,都是那部分屬性使其更驚豔的。

如何使你的Echarts圖表更具有觀賞性和實用性?

如何隐藏坐标軸

Echarts中options對象有xAxis、yAxis參數,可以控制是否顯示坐标軸、坐标軸刻度标簽、坐标軸軸線、坐标軸刻度、分割線等

yAxis: { // y軸
  type: 'value',
  show: false, // 是否顯示坐标軸
  data: [],
  axisLabel: { show: false }, // 坐标軸刻度标簽
  axisLine: { show: false }, // 坐标軸軸線
  axisTick: { show: false }, // 坐标軸刻度
  splitLine: { show:false } // 分割線
}           

複制

如何使你的Echarts圖表更具有觀賞性和實用性?

柱形圖如何設定柱子漸變和圓角

主要通過

itemStyle

屬性,

color

來設定漸變,

barBorderRadius

屬性設定圓角,遵循css左上、右上、右下、左下順序。同時下方代碼加了柱子數值label配置。

barWidth

是柱子寬度。

series : [{
  type: 'bar',
  barWidth: 40, // 柱子寬度
  label: {
    show: true,
    position: 'top', // 位置
    color: '#1CD8A8',
    fontSize: 14,
    fontWeight: 'bold', // 加粗
    distance: 20 // 距離
  }, // 柱子上方的數值
  itemStyle: {
    barBorderRadius: [20, 20, 0, 0],// 圓角(左上、右上、右下、左下)
    color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
      '#2FAEF2',
      '#1CD8A8'
    ].map((color, offset) => ({color, offset}))), // 漸變
  },
  data: [10, 52, 200, 334, 390, 330, 220]
}]           

複制

如何使你的Echarts圖表更具有觀賞性和實用性?

柱形圖柱子陰影

從上方

series

可以看出,接收的數組類型的。是以我們在加一個,同樣的type,不過資料,我們在每個值上+100,做成陰影即可。

var data = [10, 52, 200, 334, 390, 330, 220];
...
series : [{ // 陰影柱形
  type: 'bar',
  barWidth: 40,
  itemStyle: {
    color: 'rgba(167,167,167,0.2)',
    barBorderRadius: [20, 20, 0, 0]
  },
  barGap:'-100%',
  data: data.map(item=>{
      return item+=100
  }),
},
...           

複制

柱形圖添加折線

同上方一樣,我們還可以再在series裡面添加line,同時可以設定折線顔色(lineStyle),折線線條區域顔色(areaStyle)等,都是可以通過

new echarts.graphic.LinearGradient()

來設定漸變。

series: [
  ...
  ...
  {
  type:'line',
  smooth: true, // 線條轉折有弧度
  symbol: 'circle', // 數值點類型('circle', 'rectangle', 'triangle', 'diamond', 'emptyCircle', 'emptyRectangle', 'emptyTriangle', 'emptyDiamond')
  showSymbol: true,
  symbolSize: 8, // 數值點的大小
  itemStyle: {
    color: ['#1CD8A8']
  },// 數值點的顔色
  lineStyle: {
    width: 2,
    color:  new echarts.graphic.LinearGradient(0, 0, 1, 0, [{offset: 0, color: '#2FAEF2'},{offset: 1, color: '#1CD8A8'}])
  }, // 線條漸變
  areaStyle: {
    color:  new echarts.graphic.LinearGradient(0, 1, 0, 0, [
      {offset: 0, color: 'rgba(47,174,242,0)'},
      {offset: 0.5, color: 'rgba(34,202,192,0.04)'},
      {offset: 1, color: 'rgba(28,216,168,0.52)'}]    
    )
  }, // 線條區域漸變
  data: data,  // 折線圖的渲染資料
}]           

複制

如何使你的Echarts圖表更具有觀賞性和實用性?

資料格式

這個也是非常簡單,隻需要在需要格式化的地方,加上

formatter

方法,即可對資料進行格式化。

series: [
  ...
  ...
  {
    type: 'bar',
    barWidth: 12,
    label: {
      show: true,
      position: 'top',
      formatter: (params) => {
        return params.value + '萬';
      },
      color: '#1CD8A8',
      fontSize: 14,
      fontWeight: 'bold',
      distance: 25
    },
    ...
  },           

複制

如何使你的Echarts圖表更具有觀賞性和實用性?

多資料圖表可縮放

options

下可以添加

dataZoom

,來控制預設展示位置等。

...
dataZoom: [{
    show: true, // 是否顯示滾動圖,依然可以滾動縮放
    realtime: true,
    start: 0, // 預設起始位置
    end: 55 // 預設終點位置
}, {
    type: 'inside',
    realtime: true,
    start: 45,
    end: 85
}],           

複制

如何使你的Echarts圖表更具有觀賞性和實用性?

圖例legend詳細參數

可以定義圖例的位置,布局顔色等。

...
legend: {
  right: 68,  //圖例元件離右邊的距離
  orient : 'vertical',  //布局  縱向布局
  width: 40,      //圖行例元件的寬度,預設自适應
  x : 'left',   //圖例顯示在右邊
  itemWidth:10,  //圖例标記的圖形寬度
  itemHeight:10, //圖例标記的圖形高度
  data:['直接通路','郵件營銷','聯盟廣告','視訊廣告','web秀'],
  textStyle:{    //圖例文字的樣式
      color:'#333',
      fontSize:12
  }
}           

複制

如何使你的Echarts圖表更具有觀賞性和實用性?

視圖裡面加陰影提示:tooltip,提示框元件

show,預設true,是否顯示提示框元件

trigger,觸發類型,item、axis、none,當為none的時候代表什麼都不觸發,就不會顯示提示框

axisPointer,坐标軸訓示器配置項,實際上坐标軸訓示器的全部功能,都可以通過軸上的 axisPointer 配置項完成。

axisPointer的type類型:

1、'line' 直線訓示器

2、'shadow' 陰影訓示器

3、'none' 無訓示器

4、'cross' 十字準星訓示器。其實是種簡寫,表示啟用兩個正交的軸的 axisPointer。

label屬性加formatter函數,可以格式化提示框顯示内容

...
tooltip: {
  trigger: 'axis',
  axisPointer: {
    type: 'shadow',
    label:{
      formatter: function (params) {
        return '星期:' + params.value;
      }
    }
  }
}           

複制

如何使你的Echarts圖表更具有觀賞性和實用性?

總結

總的來講,顔色搭配是具有觀賞性的主要因素。同時,精簡不需要的元件和功能,能夠一目了然看懂的圖表,不要添加無用的元素說明資訊。這樣反而讓使用者看不懂,不知道圖表要表達什麼主題了。