v-charts x軸字體斜顯示

以下圖,由於X軸內容太多,放不下,插件默認間隔顯示
需求:X軸內容要所有顯示出來(只有斜顯示或固定寬多餘的用省略代替,原本須要就是想顯示所有內容,因此只能取斜顯示的方案)數組

先看看v-charts的文檔:echarts

經過extend屬性實現對已配置好的內部屬性進行單獨的設置, extend爲對象類型,對象內的屬性能夠是函數,也能夠對象,也能夠是其餘類型的值函數

  • 當屬性爲函數時,設置的是函數的返回值
  • 當屬性爲對象時,若是在options中對應的屬性爲對象(eg: tooltip)或包含對象的數組(eg: series), 對應的配置會被合併,不然將直接覆蓋對應的配置

 用法以下:字體

this.chartExtend = {
        series (v) {
          v.forEach(i => {
            i.barWidth = 10
          })
          return v
        },
        tooltip (v) {
          v.trigger = 'none'
          return v
        }
      }
      /* 等同於
        this.chartExtend = {
          series: {
            barWidth: 10
          },
          tooltip: {
            trigger: 'none'
          }
        }
        等同於
        this.chartExtend = {
          'series.0.barWidth': 10,
          'series.1.barWidth': 10,
          'tooltip.trigger': 'none'
        }
      */

============================================================================this

回到上面的需求上,要實現這個效果,也須要用到formatter格式化方法,效果以下圖(紅框X軸名稱)
spa

很少說,直接上代碼:插件

<template>
  <ve-histogram
    :data="chartData"
    :extend="chartExtend">
  </ve-histogram>
</template>

<script>
  export default {
    data () {
       this.chartExtend = {
         // 柱子寬度
          series: {
            barWidth: 10
          },
         // x軸字體斜顯示
         xAxis: {
           axisLabel: {
             margin: 15,
             interval: 0,
             rotate: 30,
             formatter: name => {
               // eslint-disable-next-line
               return echarts.format.truncateText(name, 100, '14px Microsoft Yahei', '')
             }
           },
           triggerEvent: true
         }
        }
      return {
        chartData: {
          columns: ['日期', '成本', '利潤'],
          rows: [
            { '日期': '1月1日', '成本': 15, '利潤': 12 },
            { '日期': '1月2日', '成本': 12, '利潤': 25 },
            { '日期': '1月3日', '成本': 21, '利潤': 10 },
            { '日期': '1月4日', '成本': 41, '利潤': 32 },
            { '日期': '1月5日', '成本': 31, '利潤': 30 },
            { '日期': '1月6日', '成本': 71, '利潤': 55 },
            { '日期': '1月6日', '成本': 21, '利潤': 45 },
            { '日期': '1月7日', '成本': 31, '利潤': 35 },
{ '日期': '1月8日', '成本': 11, '利潤': 35 },
{ '日期': '1月9日', '成本': 51, '利潤': 35 }
]
 } } } } </script>
相關文章
相關標籤/搜索