2016-06-01 6 views
0

Ich habe gerade angefangen, Highcharts zu verwenden und bin ein wenig festgefahren.Highcharts Liniendiagramm Zeitdauern

Ich muss ein Liniendiagramm mit Personen und Zeitdauer aufzeichnen. Ich habe einige Code, den ich gefunden online bearbeitet und haben die folgenden:

$(function() { 
    // Call Times 
    $('#TotalCallDuration').highcharts({ 
     chart: { 
      type: 'line' 
     }, 
     title: { 
      text: '', 
      x: -20 //center 
     }, 
     xAxis: { 
      categories: ['Person 1','Person 2','Person 3','Person 4','Person 5','Person 6','Person 7','Person 8','Person 9','Person 10','Person 11',] 
     }, 
     yAxis: { 
      title: { 
       text: 'Total Call Duration' 
      }, 
      type: 'time', 
      labels: { 
       formatter: function() { 
        var time = this.value; 
        var hours1=parseInt(time/3600000); 
        var mins1=parseInt((parseInt(time%3600000))/60000); 
        return (hours1 < 10 ? '0' + hours1 : hours1) + ':' + (mins1 < 10 ? '0' + mins1 : mins1); 
       } 
      } 
     }, 
     series: [{ 
      data: [7464000,4327000,3388000,3611000,3261000,5740000,9433000,8591000,8114000,3059000,10866000], 
      dataLabels: { 
       enabled: false, 
       formatter: function() { 
        var time = this.y/1000; 
        //var time = this.y; 
        var hours1=parseInt(time/3600); 
        var mins1=parseInt((parseInt(time%3600))/60); 
        return (hours1 < 10 ? '0' + hours1 : hours1) + ':' + (mins1 < 10 ? '0' + mins1 : mins1); 
       } 
      }, 
     }] 
    }); 
}); 

ich auch https://jsfiddle.net/MarcellusWallis/jnp6xodk/

jedoch erstellt haben, ich möchte auch im Moment im HH nur die Sekunden angezeigt werden Anzeige: MM.

Auch wenn ich über die Linie schweben bekomme ich die Legende Popup aber in Millisekunden seine Anzeige und nicht HH: MM: SS

+0

Eine Frage zu klären, was Sie fragen: sind die Daten, die Sie in diesem Beispiel enthalten haben (7.464.000, 4.327.000, 3.388.000, etc.) in Millisekunden? –

+0

Ich denke schon, es ist tausend Mal pro Sekunde. – user1315422

+0

Es ist ein Beispiel, das ich bearbeite – user1315422

Antwort

2

Format ändern in yAchse Etiketten Sie dateTimeLabelFormats und für Tooltip verwenden kann, könnte man pointFormat verwenden und Setze dein Format dort ein.

Beispiel: https://jsfiddle.net/s6t8ghvu/

Relevante Code:

yAxis: { 
    title: { 
    text: 'Total Call Duration' 
    }, 
    type: 'datetime', 
    dateTimeLabelFormats: { 
    minute: '%H:%M:%S' 
    } 
}, 
tooltip: { 
    pointFormat: '<span style="color:{point.color}">\u25CF</span> {series.name}: <b>{point.y: %H:%M:%S}</b><br/>' 
}, 
+0

Dies funktioniert perfekt, wenn ich den Datensatz jedoch leicht zu ändern: Daten: [2403000,2701000,1887000,4746000,7464000,8904000,8294000,6926000,9718000,3920000,3618000,1604000], das erste Zeichen auf der vertikalen Achse sollte 00:00:00 sein, wird aber als 1. angezeigt. Jan – user1315422

+0

@ user1315422 Es ist ein Datum-Uhrzeit-Format für den Tag, so dass Sie dieses Format in 'dateTimeLabelFromats' überschreiben können, indem Sie' day' verwenden - Beispiel: https://jsfiddle.net/s6t8ghvu/1 / –

Verwandte Themen