Echarts x軸文本內容太長的幾種解決方案

轉載自:原文鏈接

echarts x軸標籤文字過多導致顯示不全

在這裏插入圖片描述

解決辦法 1. xAxis.axisLabel 屬性

axisLabel: {  
    interval:0,      //座標軸刻度標籤的顯示間隔(在類目軸中有效) 0:顯示所有  1:隔一個顯示一個 :3:隔三個顯示一個...
    rotate:-20    //標籤傾斜的角度,顯示不全時可以通過旋轉防止標籤重疊(-90到90)
  }

在這裏插入圖片描述
如果x軸的文字如果太長會受到遮擋,這個時候可以用grid屬性解決。
設置grid屬性定義圖的大小來釋放空間,使得axislabel有足夠的空間

grid: {
        x: 40,  //左
        y: 40,  //上
        x2: 40, //右
        y2: 50  //下
    },
    xAxis: {
        data: ['襯衫', "羊毛衫", "雪紡衫文字加長", "褲子文字加長", "高跟鞋文字加長", "襪子", "棉服", "毛呢外套"],
        axisLabel: {
            interval: 0,
            rotate: -20
        }
    },

在這裏插入圖片描述

解決方法 2. 調用formatter文字豎直顯示

當文字不是特別長的情況下可設置文字自動換行,調用formatter回調函數實現。

xAxis: {
        data: ['襯衫', "羊毛衫", "雪紡衫文字加長", "褲子文字加長", "高跟鞋文字加長", "襪子", "棉服", "毛呢外套"],
        axisLabel: {
            interval: 0,
            formatter:function(value){  
               return value.split("").join("\n");  
            }
        }
    },

在這裏插入圖片描述
試一下兩個字換行。如下:

xAxis: {
        data: ['襯衫', "羊毛衫", "雪紡衫文字加長", "褲子文字加長", "高跟鞋文字加長", "襪子", "棉服", "毛呢外套"],
        axisLabel: {
            interval: 0,
            formatter:function(value){  
                var str = ""; 
                var num = 2; //每行顯示字數 
                var valLength = value.length; //該項x軸字數  
                var rowNum = Math.ceil(valLength / num); // 行數  
                
                if(rowNum > 1) {
                    for(var i = 0; i < rowNum; i++) {
                        var temp = "";
                        var start = i * num;
                        var end = start + num;
                        
                        temp = value.substring(start, end) + "\n";
                        str += temp; 
                    }
                    return str;
                } else {
                    return value;
                } 
            }
        }
    },

在這裏插入圖片描述

解決辦法 3. X軸類目項隔一個換行(使用formatter中index參數)

 xAxis: {
        data: ['襯衫', "羊毛衫", "雪紡衫文字加長", "褲子文字加長", "高跟鞋文字加長", "襪子", "棉服", "毛呢外套"],
        axisLabel: {
            interval: 0,
            formatter:function(value,index){  
                if (index % 2 != 0) {  
                    return '\n\n' + value;  
                }  
                else {  
                    return value;  
                } 
            }
        }
    },

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章