使用echarts绘制图表时,当数据量比较多时,我们会发现x轴文字显示不全,出现如下图的情况。
echarts图表中有个axisLabel配置项,是坐标轴刻度标签的相关设置。interval属性是坐标轴刻度标签的显示间隔,默认会采用标签不重叠的策略间隔显示标签。可以设置成 0 强制显示所有标签。还有一个属性:rotate: number 度角是倾斜的控制所在,在类目轴的类目标签显示不下的时候可以通过旋转防止标签之间重叠。
解决问题代码入下
<script>
//初始化echarts实例
var myCharts = echarts.init(document.getElementById('main'));
//指定图表的配置项和数据
var option={
title:{
text:'ajax动态获取后台数据绘制echarts图表'
},
color:['#3398db'], //调色盘颜色列表
tooltip:{ //提示框组件
trigger:'axis', //触发类型(坐标轴触发)
axisPointer:{
type:'line' //指示器类型(直线指示器)
}
},
grid:{ //直角坐标系内绘图网格
left:'3%', //grid组件离容器左侧的距离
right:'4%',
bottom:'3%',
containLabel:true //grid 区域是否包含坐标轴的刻度标签。
},
xAxis:[ //x轴
{
type:'category', //坐标轴类型(类目轴)
data:[], //类目数据
axisTick:{ //坐标轴刻度相关配置
alignWithLabel:true //刻度线与标签对齐
}
}
],
yAxis:[
{
type:'value' //数值轴
}
],
series:[ //系列列表
{
name:'直接访问',
type:'bar',
barWidth:'60%',
data:[]
}
]
};
myCharts.setOption(option);
myCharts.showLoading(); //显示加载动画
var x = [];
var y = [];
$.ajax({
type:'get',
url:'./data/obj.txt',
dataType:'JSON',
success:function(data){
// console.log(data.data);
data.data.map((item)=>{
x.push(item.name);
y.push(item.extn);
})
// console.log(x,y)
myCharts.hideLoading(); //隐藏加载效果
myCharts.setOption({
xAxis:{
type:'category', //坐标轴类型(类目轴)
data:x ,
axisLabel:{
interval:0,
rotate:-30
}
},
series:{
data:y
}
})
}
})
</script>
效果图
现在x轴的文字已经全部显示出来了、。