在echarts绘图中当x轴表示日期且数据较多时,此时如果按照echarts的默认配置,则会根据空间剩余的大小自动计算最终显示有限的几个不重叠的label
1、如果必须要显示其实日期和终止日期
xAxis: {axisLabel: {showMinLabel: true,showMaxLabel: true}}
2、由于画布限制,只显示其实和种植日期,或者再加上中间日期
interval 属性表示间隔多少项展示一个刻度,直接取一半就会只显示起始日期,终止日期,中间日期
xAxis: {axisLabel: {showMinLabel: true,showMaxLabel: true,interval: Math.ceil(data.length / 2)}}
3、label也可以进行格式化
xAxis: {data: data,axisLabel: {formatter (val, i) {if (i === 0 || i === data.length - 1 || i === Math.ceil(data.length / 2)) {return val}return ''}}}// 将需要的刻度返回,其余的赋值为''// 同时也可以对最终值进行格式化 如:moment(val).format('YYYY-MM-DD')等
4、如果要限制起始和终止刻度限制在轴线范围内,不允许超过轴线
此时需要用到echarts的富文本模式rich
// 左右两个位置需要调整,需要定义两个类名// 这里样式可以用padding, 也可以用宽度和对齐方式来做(我用这种),const richCss = {start: {width: 145,align: 'right'},end: {width: 145,align: 'left'}}
这样我们就有了两个类名, 再通过第二步的formatter函数的方法将其通过富文本的方式渲染
xAxis: {data: data,axisLabel: {formatter (val, i) {if (i === 0) {return `{start| ${val}}`} else if (i === data.length - 1) {return `{end| ${val}}`} else if (i === Math.ceil(data.length / 2)) {return val}return ''},rich: richCss}}
