echarts x轴标签文字过多导致显示不全/x轴旋转/x轴显示完全

2,218 阅读3分钟

echarts x轴标签文字过多导致显示不全/x轴旋转/x轴显示完全
这主要涉及两点:
1.grid设置距下端有距离
2.x轴rotate 设置
下面直接放在echarts官网的的普通柱状图实例里,调整就明白了。注意对比去掉grid和axisLabel的不同效果。

option = {
    xAxis: {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat3333', 'Su332'],
        axisLabel: {
      rotate: 40
    }
    },
      grid: {
      left: "3%",
      top: 130,
      right: 60,
      bottom: 50,
      containLabel: true,
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        data: [120, 200, 150, 80, 70, 110, 130],
        type: 'bar'
    }]
};

参考:blog.csdn.net/superlover_…

备注:

xAxis.axisLabel  |   Object

坐标轴刻度标签的相关设置。


xAxis.axisLabel.show   |   boolean

[ default: true ]

是否显示刻度标签。


xAxis.axisLabel.interval   |   number, Function

[ default: 'auto' ]

坐标轴刻度标签的显示间隔,在类目轴中有效。

默认会采用标签不重叠的策略间隔显示标签。

可以设置成 0 强制显示所有标签。

如果设置为 1,表示『隔一个标签显示一个标签』,如果值为 2,表示隔两个标签显示一个标签,以此类推。

可以用数值表示间隔的数据,也可以通过回调函数控制。回调函数格式如下:

(index:number, value: string) => boolean

第一个参数是类目的 index,第二个值是类目名称,如果跳过则返回 false。


xAxis.axisLabel.inside   |   boolean

[ default: false ]

刻度标签是否朝内,默认朝外。


xAxis.axisLabel.rotate   |   number

[ default: 0 ]

刻度标签旋转的角度,在类目轴的类目标签显示不下的时候可以通过旋转防止标签之间重叠。

旋转的角度从 -90 度到 90 度。


xAxis.axisLabel.margin   |   number

[ default: 8 ]

刻度标签与轴线之间的距离。


xAxis.axisLabel.formatter   |   string, Function

[ default: null ]

刻度标签的内容格式器,支持字符串模板和回调函数两种形式。

示例:

// 使用字符串模板,模板变量为刻度默认标签 {value}
formatter: '{value} kg'
// 使用函数模板,函数参数分别为刻度数值(类目),刻度的索引
formatter: function (value, index) {
    // 格式化成月/日,只在第一个刻度显示年份
    var date = new Date(value);
    var texts = [(date.getMonth() + 1), date.getDate()];
    if (index === 0) {
        texts.unshift(date.getYear());
    }
    return texts.join('/');
}

xAxis.axisLabel.showMinLabel   |   boolean

[ default: null ]

是否显示最小 tick 的 label。可取值 true, false, null。默认自动判定(即如果标签重叠,不会显示最小 tick 的 label)。


xAxis.axisLabel.showMaxLabel   |   boolean

[ default: null ]

是否显示最大 tick 的 label。可取值 true, false, null。默认自动判定(即如果标签重叠,不会显示最大 tick 的 label)。


xAxis.axisLabel.color   |   Color, Function

刻度标签文字的颜色,默认取 axisLine.lineStyle.color。支持回调函数,格式如下:

(val: string) => Color

参数是标签的文本,返回颜色值,如下示例:

textStyle: {
    color: function (value, index) {
        return value >= 0 ? 'green' : 'red';
    }
}

xAxis.axisLabel.fontStyle   |   string

[ default: 'normal' ]

文字字体的风格

可选:

  • 'normal'
  • 'italic'
  • 'oblique'

xAxis.axisLabel.fontWeight   |   string

[ default: normal ]

文字字体的粗细

可选:

  • 'normal'
  • 'bold'
  • 'bolder'
  • 'lighter'
  • 100 | 200 | 300 | 400...

xAxis.axisLabel.fontFamily   |   string

[ default: 'sans-serif' ]

文字的字体系列

还可以是 'serif' , 'monospace', 'Arial', 'Courier New', 'Microsoft YaHei', ...


xAxis.axisLabel.fontSize   |   number

[ default: 12 ]

文字的字体大小


xAxis.axisLabel.align   |   string

文字水平对齐方式,默认自动。

可选:

  • 'left'
  • 'center'
  • 'right'

rich 中如果没有设置 align,则会取父层级的 align。例如:

{
    align: right,
    rich: {
        a: {
            // 没有设置 `align`,则 `align` 为 right
        }
    }
}

xAxis.axisLabel.verticalAlign   |   string

文字垂直对齐方式,默认自动。

可选:

  • 'top'
  • 'middle'
  • 'bottom'

rich 中如果没有设置 verticalAlign,则会取父层级的 verticalAlign。例如:

{
    verticalAlign: bottom,
    rich: {
        a: {
            // 没有设置 `verticalAlign`,则 `verticalAlign` 为 bottom
        }
    }
}

xAxis.axisLabel.lineHeight   |   number

行高。

rich 中如果没有设置 lineHeight,则会取父层级的 lineHeight。例如:

{
    lineHeight: 56,
    rich: {
        a: {
            // 没有设置 `lineHeight`,则 `lineHeight` 为 56
        }
    }
}

xAxis.axisLabel.backgroundColor   |   string, Object

[ default: 'transparent' ]

文字块背景色。