2017-12-28 21 views
0

amCharts를 사용하여 주식 데이터를 표시하고 있습니다. 나는 7 가지 확대/축소 레벨을 가지고있다 : 1H, 1D, 1W, 1M, 3M, 1Y, MAX. 1H, 1D의 경우 분명한 데이터가 포함 된 데이터 집합을 사용하고 있습니다. 1W, 1M의 경우 시간별 데이터가있는 다른 데이터 세트를 사용합니다. 나머지 3 단계에는 매일 데이터가있는 다른 데이터 세트가 있습니다. 나는 1W 버튼 또는 더 줌 레벨 버튼의 startDate의 차이 (분 단위)를 클릭 한 후, 기본 줌 레벨 1D에서 분 현명한 데이터를로드하고, chart.periodSelector에 청취자 "changed"를 추가 할 때 처음amCharts wrong 시작일 및 종료일 확대/축소

: 지금 여기 내 문제입니다 생성 된 이벤트의 endDate가 : var minsDiff = (event.endDate.getTime() - event.startDate.getTime())/60000일일 (1440) 대신 칠일의 분의 수와 항상 동일합니다.

나는로드 현재 데이터 세트는 데이터 포인트 1440 최대 번호 분 데이터 집합이기 때문에이있을 수 있습니다 가정합니다. 따라서 많은 데이터 만 사용할 수 있기 때문에 1 주일의 날짜 범위와 1 일의 날짜 범위를 동일하게 설정할 수 있습니다. 그러나 내가 원하는 것은 1W 버튼을 클릭하면 1 주일의 실제 날짜 범위입니다. 왜냐하면 다른 데이터 세트 (1W에 대해 시간 현명한 데이터)를 사용하여 다른 차트를로드하려고하기 때문입니다.

나는 차트의 청취자 "zoomed"를 사용했습니다. 그러나 같은 문제가 계속되었다.

도와주세요.
감사합니다 :)

+0

당신이 당신의 차트 설정을 게시 할 수 다음 changed 이벤트에 predifinedPeriod 속성을 선택하면 데이터가 반드시 전체 기간을 포함하지 않는이 시나리오에 도움이 될 것입니다 클릭 된 버튼을 볼 수있는 확실한 방법이다? – xorspark

답변

1

일반적으로 범위를 벗어난 범위는 hideOutOfScopePeriods을 false로 설정하지 않으면 표시되지 않습니다. 눈치 챘 겠지만 기간이 사용 가능한 데이터의 양보다 큰 경우 차트는 보유한 데이터에 맞게 줌을 자릅니다.

listeners: [ 
    { 
    event: "changed", 
    method: function(eventObj) { 
     console.log("clicked " + eventObj.predefinedPeriod); 
    } 
    } 
] 
+0

답변 해 주셔서 감사합니다. 아무 것도 알지 못하는 사람이 없기 때문에 https://stackoverflow.com/questions/48023787/amcharts-chartscrollbar-going-out-of-chartdiv를 살펴보고 해당 질문에 도움을 줄 수 있습니까? 다시 한번 감사드립니다. –