2014-11-16 2 views
0

버전 2.1.6에서 4.0.4로 업데이트했으며 alignTicks 옵션을 새로 고침하는 데 문제가 있습니다. 속성에서 true로 시작한 다음 버튼을 통해 false로 설정했습니다. 그래프가 true에서 false로 변경되면 윈도우 크기가 변경되거나 하나의 데이터 세트가 비활성화/활성화 된 후에 만 ​​그래프가 업데이트됩니다. 다시 false에서 true로 그때는 ... 제대로 작동 여기 하이 차트가 alignTicks로 작업하지 않음

예를 들어

:

chart = new Highcharts.Chart({ 
    'chart': { 
    'renderTo': 'graph', 
    'type': 'line', 
    'zoomType': 'x', 
    'alignTicks': true 
    }, 
    'tooltip': { 
    'formatter': function() { 
     var d = new Date(this.x); 
     return 'Time: <b>' + ('0' + d.getUTCHours()).slice(- 2) + ':' + ('0' + d.getUTCMinutes()).slice(- 2) + ':' + ('0' + d.getUTCSeconds()).slice(- 2) + '</b><br/> Value: <b>' + this.y + '</b>'; 
    } 
    }, 
    'credits': false, 
    'title': { 
    'text': 'Date: 04-11-2014 - Location: Locale' 
    }, 
    'xAxis': { 
    'type': 'datetime' 
    }, 
    'yAxis': [ 
    { 
     'title': { 
     'text': 'SK_angle', 
     'style': { 
      'color': '#4572A7' 
     } 
     }, 
     'labels': { 
     'style': { 
      'color': '#4572A7' 
     } 
     }, 
     'opposite': false, 
     'allowDecimals': true 
    }, 
    { 
     'title': { 
     'text': 'EL_angle', 
     'style': { 
      'color': '#AA4643' 
     } 
     }, 
     'labels': { 
     'style': { 
      'color': '#AA4643' 
     } 
     }, 
     'opposite': true, 
     'allowDecimals': true 
    }, 
    { 
     'title': { 
     'text': 'Software Status', 
     'style': { 
      'color': '#89A54E' 
     } 
     }, 
     'labels': { 
     'style': { 
      'color': '#89A54E' 
     } 
     }, 
     'opposite': false, 
     'allowDecimals': false 
    } 
    ], 
    'series': [ 
    { 
     'color': '#4572A7', 
     'name': 'SK_angle', 
     'yAxis': 0, 
     'data': [ 
     [1415064918000,305.89], 
     [1415064919000,335.0], 
     [1415064923000,306.05], 
     ] 
    }, 
    { 
     'color': '#AA4643', 
     'name': 'EL_angle', 
     'yAxis': 1, 
     'data': [ 
     [1415064918000,37.87], 
     [1415064919000,37.2], 
     [1415064923000,37.9], 
     ] 
    }, 
    { 
     'color': '#89A54E', 
     'name': 'Software Status', 
     'yAxis': 2, 
     'data': [ 
     [1415064918000,1362], 
     [1415064919000,1362], 
     [1415064923000,1256], 
     ] 
    } 
    ] 
}); 

$('#scaleAlign').click(function() { 
    if (chart.options.chart.alignTicks) { 
     chart.options.chart.alignTicks = false; 
     $('#scaleAlign').attr('value','Align Scale'); 
    } 
    else { 
     chart.options.chart.alignTicks = true; 
     $('#scaleAlign').attr('value','Unalign Scale'); 
    } 
    chart.isDirtyBox = true; 
    chart.redraw(); 
}); 

http://jsfiddle.net/04Lffe0r/3/

답변

1

업데이트 같은 코드 : http://jsfiddle.net/04Lffe0r/4/

이 추가함으로써 :

chart.series[0].isDirty = true; 

시리즈를 더티 f로 설정해야하기 때문에 f 또는 다시 그릴 차트

+0

대단히 감사합니다. 이것은 실제로 해결책이지만, 그래프가 시리즈의 수에서 동적이기 때문에 나는이 chart.series.forEach (function (serie) {serie.isDirty = true;});와 같이 할 필요가있었습니다. 당신이 나에게 제안 할 수있는 더 나은 해결책은 없습니다. 그렇지 않으면 답장을 기다리고 나서 해결책을 받아 들일 것입니다.) 가장 오래된 버전 인 isDirtyBox는 모든 것을 다시 그리기에 충분했기 때문에 이것이 나를 바보로 만들었습니다! :) 다시 Thx! – Manny

+0

문제 없습니다. 나는 그렇게 할 또 다른 방법이 있다고 생각하지 않는다. 'AddPoint' 나'Update' 같은 일부 함수는 전달 된'redraw' 매개 변수를 가지고 있습니다. 당신의 경우 적용 할 수 없습니다. –

+0

이 정보에 대해 다시 한 번 감사드립니다. 해결책이 수락되었습니다! – Manny

관련 문제