解決echarts中橫坐標值顯示不全(自動隱藏)問題


echarts中,橫軸數據如果非常多,會自動隱藏一部分數據,我們可以通過屬性interval來進行調整。

如下圖,當橫軸時間為13天時,echarts會自動隔天顯示

如果我們想顯示全,則需要在xAxis 屬性加上axisLabel:{interval: 0}

1
2
3
4
5
6
"xAxis" :[{ "data" :[ "2015-5-13" , "2015-5-14" , "2015-5-15" , "2015-5-16" , "2015-5-17" , "2015-5-18" , "2015-5-19" , "2015-5-20" , "2015-5-21" , "2015-5-22" , "2015-5-23" , "2015-5-24" , "2015-5-25" ],
  "type" : "category" ,
  "axisLabel" :{
  interval: 0
  }
}],

效果如下:

查看echarts官網的文檔,可以得知:

補充知識:Echarts X軸內容過長自動隱藏,鼠標移動上去顯示全部

使用echarts圖表做頁面展示的時候,當X軸內容過長時,之前一直用的 '\n' 換行(將字符串根據需要分成兩行來展示),這樣有很大的局限性(如內容過長的話 分成兩行也放不下,而且也會影響美觀),后來發現可以通過設置自動隱藏,鼠標移動上去顯示全部名稱的方法 來做,效果會更好。

1. 首先在 x軸上添加 triggerEvent: true。如下紅色部分:

xAxis: {
data: result.nameList,
silent: false,
triggerEvent: true,
axisLine: {
onZero: true,
show: true,
lineStyle: {
color: '#90979c' // x 軸線最下面的橫坐標線的顏色
}
},
splitLine: {show: false},
splitArea: {show: false},
axisLabel: {
interval: 0,//設置橫坐標為斜
rotate: 30,//文字傾斜角度
formatter: function (value) {
if (value.length > 10) {
value = value.substring(0, 9) + "..";
}
return value;
},
textStyle: {
color: '#666',
fontSize: '12'
}
},
},

2. 自定義x軸上顯示的內容長度。如上面代碼段中的藍色部分。

3. 自定義一個 鼠標懸浮事件方法,並調用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function extensionOne(myChart) {
  var id = document.getElementById( "extensionOne" );
  //判斷是否創建過div框,如果沒有創建過,則創建。(創建時,默認隱藏)
  if (!id) {
   var div = "<div id = 'extensionOne' sytle=\"display:none\"></div>" ;
   $( 'html' ).append(div);
  }
 
  var arrow_left = '20px' ;
  //鼠標懸浮事件
  myChart.on( 'mouseover' , function (params) {
   if (params.componentType != "xAxis" ) {
    return ;
   }
 
   //設置div框樣式,並為其填充值。
   $( '#extensionOne' ).css({
    "position" : "absolute" ,
    "color" : "#90979c" ,
    // "border": "solid 0px white",
    "font-family" : "Arial" ,
    "font-size" : "14px" ,
    "padding" : "5px" ,
    "display" : "inline"
   }).text(params.value);
   var xx_text = params.event.offsetX - 35;
   arrow_left = xx_text;
 
   $( "#talentDemandDistribution" ).mousemove( function (event) {
    // console.log("X軸坐標:" + event.pageX + " Y軸坐標:" + event.pageY);
    var xx = event.pageX - 30;
    var yy = event.pageY + 10;
    $( '#extensionOne' ).css( 'top' , yy).css( 'left' , xx);
   });
  });
 
  myChart.on( 'mouseout' , function (params) {
   $( '#extensionOne' ).css( 'display' , 'none' );
  });
}
{
  ...
  ...
  var chart = echarts.init(document.getElementById( 'talentDemandDistribution' ));
  chart.setOption(option);
 
  //在echarts 初始化完成后,調用自定義的鼠標懸浮事件方法
  extensionOne(chart);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM