2014-05-19 2 views
1

작은 차트의 경우 highcharts의 dataLabel을 중첩하지 않도록 설정할 수 있습니까?highcharts responsive datalabels display

나는 similar to this one하지만 내가 달성하고 싶은 것은 차트가 있습니다

  • 대체는 Y 값 (데이터 레이블 :. 15, 40, 등)
  • 피하기 텍스트 중복 대신 수의 난이 다음 xdataLabelsy 위치를 지정하지 않고 다른 옵션이 있습니까 아이폰 크기

에 겹쳐 "긴 텍스트를"?

{ 
    "x": 1400457600000, 
    "y": 15, 
    "dataLabels": { 
     "x": 25, 
     "y": -5, 
     "style": { 
     "color": "#000000" 
     } 
    } 
} 

답변

0

고객 포맷터로 대체 할 수 있습니다. 이 함수가 호출되어 얼마나 많은 시간을 추적하고 심지어 호출 만의 레이블을 반환

plotOptions: { 
     series: { 
      dataLabels: { 
       enabled: true, 
       formatter: function(){ 
        if (this.series.chart.dlFCalls == null){ 
         this.series.chart.dlFCalls = -1; 
        } 
        this.series.chart.dlFCalls++; 
        if (this.series.chart.dlFCalls % 2 == 0){ 
         return this.y; 
        } 
       } 
      } 
     } 
    } 

지금까지와 같은 피팅 긴 텍스트, 나는 rotation의 조합을 사용하고 약간의 y 값을 상쇄 것입니다.

여기가 바로 example입니다.

+0

+1! 하지만 제가 대안을 말했을 때, 저는 한 가지 가치가 수평선 위에 있고, 다음 가치는 그 선 아래에 있다는 것을 의미했습니다. 회전은 나를위한 옵션이 아니며, 데이터 레이블이 겹치지 않는다는 것을 어떻게 든 찾아야합니다. –

2

this 충돌을 감지하는 예제를 사용할 수 있습니다.

events: { 
       load: function() { 
        StaggerDataLabels(this.series); 
       }, 
       redraw: function() { 
        var series = this.series; 
        setTimeout(function() { 
         StaggerDataLabels(series); 
        }, 1000); 
       } 
      }, 
+0

와우, 정말 끝내주는 군. – Mark

+1

@SebastianBochan : 답변을 주셔서 감사합니다, 귀하의 예제는 여러 시리즈와 것 같습니다하지만 난 하나있어. 동일한 시리즈의 포인트의 데이터 레이블이 겹치는 것을 의미합니다. –