echarts遇到的问题

文章目录

  • 折线图-区域面积图 areaStyle
  • y轴只有整数
  • y轴不从0开始
  • y轴数值不确定,有大有小,需要动态处理
  • 折线-显示label
  • 标线
  • legend的格式化和默认选中状态
  • x轴的lable超长处理
  • x轴的相关设置

echarts各个场景遇到的问题

折线图-区域面积图 areaStyle

echarts遇到的问题_第1张图片

areaStyle: {
  opacity: 0.8, // 透明度
  color: {
    /*折线-面积区域-颜色渐变*/
    type: 'linear',
    x: 0,
    y: 0,
    x2: 0,
    y2: 1,
    colorStops: [
      {
        offset: 0,
        color: val.colorList[index], // 0% 处的颜色
      },
      {
        offset: 1,
        color: 'rgba(255,255,255,0.4)' // 100% 处的颜色
      }
    ],
    global: false // 缺省为 false
  },

},

// stack:'Total', // 堆积。

/*面积图的时候,hover后,是否隐藏(置灰)其他线,只保留当前的自己内容*/
emphasis: {
  focus: 'series', // hover的交互。
},

y轴只有整数

yAxis:
scale:true, // y坐标轴不从0开始

y轴不从0开始

yAxis:
minInterval: 1, // 不显示小数,只有整数

y轴数值不确定,有大有小,需要动态处理

echarts遇到的问题_第2张图片

/***
 * 计算数值的最大值,根据最大值,设备grip的left,否则数值可能显示不全的!
 * @type {number[]}
 */
let maxNumList = [1000] // 默认4位数的宽度。
// 找出各个系列中的max
option.series.forEach(v=>{
  let maxNum = Math.max(...v.data)
  maxNumList.push(maxNum)
})
// console.log('最大值list:',maxNumList)
// 找出max
let max = Math.max(...maxNumList)
let maxLength = (max+'').length
// 默认一个字站位12px
option.grid.left = 12*maxLength + ''


this.echartsIns.setOption(option, true)

折线-显示label

echarts遇到的问题_第3张图片

series-line. label

标线

echarts遇到的问题_第4张图片

// 插入一个标线
markLine: {
  silent: false, // 图形是否不响应和触发鼠标事件:false true
  label:{
    show:true, //
    position:'end', // 标签位置
    distance:-20, // 标签与线之间的间距
    // 标签内容格式器
    formatter:(params)=>{
      console.log('markLine-format:',params)
      return params.name+ ':' + params.value
    }
  },
  data: [
    { yAxis: 33, },
    {
      type:'average', // 平均值
      name:'平均值a', //
    },
    {
      type:'min', // 最小值
      name:'最小值b', //
    },
    {
      type:'max', // 最大值
      name:'最大值c', //
    },
  ]
},

legend的格式化和默认选中状态

// 图例组件。
legend: {
  show: true,  // true, false
  formatter: (name) => {
    // return `ks-${name}` // 添加前缀
    // 自己处理文字
    return echarts.format.truncateText(name, 40)
  },
  // 图例选择的模式,控制是否可以通过点击图例改变系列的显示状态。默认开启图例选择,可以设成 false 关闭。
  selectedMode: true, // true,false 是否可以选择切换legend
  selected: {
    // key是data中的name字段
    '人员': false,
    '绩效': true,
  },
},

x轴的lable超长处理

  1. 换行
    format的时候,隔几个字就加一个‘\n’,换行处理了
  2. 旋转:旋转一定的度数
  3. 隔几个显示,

x轴的相关设置

echarts遇到的问题_第5张图片

xAxis: {
  show: true, // false true
  type: 'category', //  坐标轴类型。'value' 数值轴,适用于连续数据。'category' 类目轴. 'time' 时间轴.'log' 对数轴。
 
  // 坐标轴 '轴线' 相关设置。
  axisLine: {
    show: true, // false,true
    symbol: ['none', 'arrow'], // x轴是否有箭头
    symbolSize: [10, 15], // 轴线两边的箭头的大小
    lineStyle: {},
  },
  // 坐标轴'刻度'相关设置。
  axisTick: {},
  // 坐标轴刻度'标签'的相关设置。
  axisLabel: {
    show: true, //  false,true
    rotate: 25, // 旋转度数
    color: (value) => {
      console.log('x轴value:', value)
      return value == '08:00' ? '#0e0e0e' : 'rgba(255,68,0,0.5)'
    }
  },
  // 坐标轴在 grid 区域中的分隔线。(垂直坐标轴的线)
  splitLine: {
    show: true, // 坐标轴在 grid 区域中的分隔线。
    interval: 0,
    lineStyle: {
      color: 'rgba(59,26,203,0.4)',
      type:[4,4],// 'dotted'等
      width:2,
    },
  },
  // 类目数据,在类目轴(type: 'category')中有效。
  data: val.xData,
  // 坐标轴指示器配置项。(hover x轴的时候,选中区域或者line的效果)
  axisPointer: {
    // show:true,
    type: 'line', // line shadow none
  }
},

你可能感兴趣的:(echarts,前端,javascript)