2017-09-28 10 views
0

散布図に正しく表示されていない経過時間があり、希望の表示方法が得られないようです。たとえば、私は00:02:45、00:00:28、00:03:31のような経過時間を持っています。私のxAxisでは、時刻は04:59:30から05:04:00まで表示されています。ツールヒントの上記の時間は、「05時間02分45秒」、「05時間00分28秒」、「05時間03分31秒」のように表示されます。ハイチャートDateTime xAxisとツールチップの書式設定の問題

なぜ5が0になるべきなのか分からないのですが、どうすればいいですか?

if (data.length > 0) { 
      for (var i = 0; i < data.length; i++) { 
       scores.push({ name: data[i].fname + " " + data[i].lname, x: Date.parse(data[i].elapsedTime), y: data[i].score }); 
      } 

      Highcharts.chart('avgFirstTryChart', { 
       chart: { 
        type: 'scatter', 
        zoomType: 'x' 
       }, 
       title: { 
        text: 'Average Score First Try' 
       }, 
       xAxis: { 
        type: 'datetime', 
        title: { 
         text: 'Elapsed Time (hours)' 
        }, 
        dateTimeLabelFormats: { 
         day: '%H:%M:%S' 
        }, 
        labels: { 
         formatter: function() { 
          return Highcharts.dateFormat('%H:%M:%S', this.value) 
         } 
        }, 
        startOnTick: true 
       }, 
       yAxis: { 
        title: { 
         enabled: true, 
         text: 'Score' 
        }, 
        min: 0, 
        max: 100, 
        gridLineWidth: 1, 
        lineWidth: 0, 
        tickWidth: 0, 
        showLastLabel: true 
       }, 
       plotOptions: { 
        scatter: { 
         marker: { 
          radius: 5, 
          states: { 
           hover: { 
            enabled: true, 
            lineColor: 'rgb(100,100,100)' 
           } 
          } 
         }, 
         tooltip: { 
          pointFormat: '{point.name}, {point.x: %H hrs %M mins %S secs} - [score {point.y}%]' 
         } 
        }, 
        series: { 
         point: { 
          events: { 
           click: function() { 
            var point = this, 
             series = point.series, 
             chart = series.chart, 
             xAxis = series.xAxis; 

            xAxis.setExtremes(this.x - 25000, this.x + 25000); 
            chart.showResetZoom(); 
           } 
          } 
         } 
        } 
       }, 
       credits: { 
        enabled: false 
       }, 
       series: [{ 
        name: 'Score', 
        color: 'rgba(223, 83, 83, .5)', 
        data: scores 
       }] 
      }); 
     } 
+0

秒に結果を変換し、highchartsに – ewolden

+0

あなたはどのようにそれを行うために私を示すことができた問題を解決することを送り込みますか? – user721126

+0

私はあなたがちょうどできると思っていた。 00:02:45 = 0 * 3600 + 2 * 60 + 45です。しかし、datetimeを使用した方が良いでしょう。ですから、あなたの 'for'ループに' console.log(Date.parse(data [i] .elapsedTime)) 'を追加し、返された値を見て何が間違っているのかを調べることをお勧めします。 – ewolden

答えて

0

この問題を抱えている人にとっては、問題はx軸に沿った値でした。ユーザーは次のように持っていた:として解析された

data[0].elapsedTime = '1900-01-01T00:02:45.77' 
data[1].elapsedTime = '1900-01-01T00:00:28.50' 

Date.parse(data[0].elapsedTime) = -2208970634230 
Date.parse(data[1].elapsedTime) = -2208992371500 

簡単な解決策は、このように、1900年以降の秒を削除しました:

Date.parse(data[0].elapsedTime) - Date.parse('1900-01-01T00:00:00.00') = 165770 
Date.parse(data[1].elapsedTime) - Date.parse('1900-01-01T00:00:00.00') = 28500 

そうすれば、グラフ経過時間がミリ秒単位で表示され、HH:MM:SSのみを表示するように書式設定されているため、年は関係ありません。