关于javascript:echarts-折线图移动端X轴显示不全

次要起因

X轴文字太多,须要文字歪斜角度,换行以及省略

X轴文字歪斜角度,换行

interval

坐标轴刻度标签的显示距离(在类目轴中无效哦),默认会采纳标签不重叠的形式显示标签(也就是默认会将局部文字显示不全)能够设置为0强制显示所有标签,如果设置为1,示意隔一个标签显示一个标签,如果为3,示意隔3个标签显示一个标签,以此类推

rotate

标签歪斜的角度,在类目轴的类指标签显示不全时能够通过旋转避免标签重叠(官网这样说的)旋转的角度是-90到90度

xAxis:{
  axisLabel:{
    interval: 0,//X轴信息全副展现
    rotate: -60,//60 标签歪斜的角度
  }
}

仍旧受到遮挡

这个名称x轴的文字如果太长会受到遮挡,还是显示不全,这个时候能够用grid属性解决

grid: {
  left: '10%',
  bottom:'35%'
},

需要(中文显示两行,文字过多显示省略号;长日期显示一行,过多显示省略号)

formatter

axisLabel中应用formatter回调,formatter有两个参数,应用办法是这样的formatter:function(value,index){} ,value是类目(测试医院A,人民医院),index 是类目索引。

xAxis:{
  axisLabel:{
     formatter:function(value){
        let ret = ""; //拼接加\n返回的类目项
        let maxLength = 8; //每项显示文字个数
        if(value.length>2*maxLength){
          value = value.substring(0, 2*maxLength - 3) + "...";
        }
        let valLength = value.length; //X轴类目项的文字个数
        let rowN = Math.ceil(valLength / maxLength); //类目项须要换行的行数
        if(/.*[/u4e00-/u9fa5]+.*$/.test(value)){//判断是否有中文
          if(rowN > 1){
            for (let i = 0; i < rowN; i++) {
                let temp = "";//每次截取的字符串
                let start = i * maxLength;//开始截取的地位
                let end = start + maxLength;//完结截取的地位
                //这里也能够加一个是否是最初一行的判断,然而不加也没有影响,那就不加吧
                temp = value.substring(start, end) + "\n";
                ret += temp; //凭借最终的字符串
            }
            return ret
          }else{
            return value 
          }
        }else{
          return value
        }
     }
  }
}

总结

整体代码

op1:{
  grid: {
    left: '10%',
    bottom:'35%'
  },
  xAxis:{
    axisLabel:{
       textStyle:{
          color: "#444",
          fontSize: 8,
          lineHeight: 9
       },
       formatter:function(value){
          let ret = ""; //拼接加\n返回的类目项
          let maxLength = 8; //每项显示文字个数
          if(value.length>2*maxLength){
            value = value.substring(0, 2*maxLength - 3) + "...";
          }
          let valLength = value.length; //X轴类目项的文字个数
          let rowN = Math.ceil(valLength / maxLength); //类目项须要换行的行数
          if(/.*[/u4e00-/u9fa5]+.*$/.test(value)){//判断是否有中文
            if(rowN > 1){
              for (let i = 0; i < rowN; i++) {
                  let temp = "";//每次截取的字符串
                  let start = i * maxLength;//开始截取的地位
                  let end = start + maxLength;//完结截取的地位
                  //这里也能够加一个是否是最初一行的判断,然而不加也没有影响,那就不加吧
                  temp = value.substring(start, end) + "\n";
                  ret += temp; //凭借最终的字符串
              }
              return ret
            }else{
              return value 
            }
          }else{
            return value
          }
       }
    },
    interval: 0,//X轴信息全副展现
    rotate: -60,//60 标签歪斜的角度
  }
}

echarts 折线图(挪动端)X轴显示不全X%E8%BD%B4%E6%98%BE%E7%A4%BA%E4%B8%8D%E5%85%A8.md)

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理