2013-09-04 1 views
0

클라이언트에서 비동기 적으로 데이터를로드하고 있습니다. 때때로 null 시간 및 값 쌍이 수신됩니다. 이 경우, 네비게이터는 1970 년부터 표시합니다. 네비게이터 시리즈의 첫 번째 타임 스탬프로 초기 점을 설정하려고 시도했으나 문제가 지속됩니다. 왜냐하면 null이 시리즈에 표시되기 때문입니다.네비게이터가 첫 번째 점이 null 인 1970 년에 표시

제안 할만한 해결책이 있습니까?

$(function() { 
    $('#container').highcharts('StockChart', { 

     chart: { 
     }, 

     navigator: { 
      adaptToUpdatedData: false, 
      series: { 
       name: 'navigator' 
      } 
     }, 

     rangeSelector: { 
      enabled: false 
     }, 
     series: [{ 
      name: "Billy" 
     } 
     ] 
    }); 

    var data = [[null, null], 
        [Date.UTC(1990, 9, 27), 10 ], 
        [Date.UTC(1990, 10, 10), 20 ], 
        [Date.UTC(1990, 10, 18), 30 ], 
        [Date.UTC(1990, 11, 2), 40 ], 
        [Date.UTC(1990, 11, 9), 50 ], 
        [Date.UTC(1990, 11, 16), 60 ], 
        [Date.UTC(1990, 11, 28), 50], 
        [Date.UTC(1991, 0, 1), 40], 
        [Date.UTC(1991, 0, 8), 30], 
        [Date.UTC(1991, 0, 12), 20], 
        [Date.UTC(1991, 0, 27), 10]] 
    var chart = $('#container').highcharts(); 
    chart.series[0].setData(data); 
    chart.xAxis[0].setExtremes(chart.xAxis[0].min, chart.xAxis[0].max, true); 
}); 

답변

3

하이 차트에 null x 값을 사용할 수 없습니다. 이 점에 대한 Y의 데이터가없는 경우

는, 즉, (즉)와 같은 데이터가있는 경우 null 값을 알고하지 않는 [Date.UTC(1990, 9, 27), null]

널 x와 널 (null) y는 당신에게 의미있는 아무것도 제공하지 않습니다를 (지정 문제)가 발생했습니다.

+0

사실, null 타임 스탬프는 자체 정보가 거의 없습니다. 그러나 시간이 많이 드는 일련의 데이터 포인트에있는 경우 시간 범위 내에서이를 문제로 분리 할 수 ​​있습니다. 지금 연결되지 않은 null을 사용 중입니다. http://api.highcharts.com/highcharts # plotOptions.line.connectNulls – molc

+0

제 생각을 빠뜨린 것 같아요. connectNulls는 null y 값에 적용됩니다. null y 값은 정상입니다. null x 값은 용도를 제공합니다. x 값을 지정하지 않으면 데이터에 연결하거나 건너 뛸 수 없습니다. 당신의 시계열은 그 시점이 무엇인지 알지 못하기 때문에 건너 뛰거나 그것을 포함 할 수 없습니다 ... [null, null]을 전송함으로써 문자 그대로 데이터 포인트가 어디에 속해 있는지 차트에 말하고있는 것입니다. 따라서 오류가 발생합니다. 날짜 네비게이터를 제공 한 날짜가 null 일 때 차트를 어떻게 시작할 수 있는지 어떻게 알 수 있습니까? – jlbriggs

+0

아. 네가 요점을보고 동의한다. 최소한 서버는 값에 대한 타임 스탬프를 되돌려 보내야합니다. 그렇지 않으면 x 및 y 축에 서수 및 날짜/시간 플롯을 혼합합니다. 이는 다소 미친 일입니다. 시리즈 중반부에있을 때 제 예제가 효과가 있다고 생각합니다.하지만 대부분 운이 좋다고 생각합니다. – molc

1

왜 필터링하지 널/널 쌍 :

여기에 내 코드와 a fiddle입니까? 데이터에 의미가없는 사용이있는 이유가 차트에 전송되도록 허용하는 이유는 무엇입니까?

+0

데이터가, 우리의 경우 의미가 없다. Highcharts는 다른 인스턴스에서이 우물을 처리하여 데이터가없는 차트에 휴식 시간을 표시하고 추가 조사를 수행 할 수 있도록 사용자를 위해 주석을 달 수 있습니다. – molc

+0

좋아, 나는 그것을 볼 수있다. 어때 네비게이터를위한 두 번째 시리즈를 만들지 만 널 포인트를 포함하지 않습니까? – wergeld

+0

앞으로 나아가 야겠네, 그건 내가 생각하지 못했던 좋은 생각 인 것 같습니다. 모든 시리즈가 표시 될 공통 타임베이스를 산출하고 탐색기에서이를 표시 할 시계열을 작성할 수 있습니다. 고려중인 또 다른 옵션은 사용자가 네비게이터 시리즈를 스스로 지정할 수 있도록하는 것이 었습니다. 모든 네비게이션을 제거하기 위해 처리 할 수있었습니다. – molc

0

또한이 라인을 결합 할 수 있습니다 :

chart.addSeries({ 
      name: 'USD to EUR' 
     }); 
    chart.series[0].setData(data); 

chart.addSeries({ 
    name: 'USD to EUR', 
    data:data, 
    pointStart: Date.UTC(1990, 9, 27) 
}); 

에 당신은 pointStart를 사용할 수 있지만 null 값 없애 더 좋을 것이다. 뭔가가 현장에서 잘못 간 의미로

http://jsfiddle.net/Tt7dp/4/

+0

pointStart는 흥미로운 속임수입니다. 첫 번째 비 널 datetime을 검색하고 그 값을 설정할 수 있습니다.위에서 언급 한 이유로 Null 값을 제거하는 것이 이상적이지만 옵션이 될 수는 없습니다. – molc

관련 문제