2016-11-30 2 views
2

Ich habe eine (Highcharts) Grafik mit einem Prozentsatz über die Zeit. Der Eingang für meine Serie sieht ungefähr so ​​aus:Falsche Werte auf Highcharts (im Vergleich zur Eingabe)

series: [{ 
    name: "Percentage", 
    data: [ 
     [1472515200000, 49], 
     [1472601600000, 48.83], 
     [1472688000000, 49.6], 
     [1472774400000, 48.77] 
    ] 
}] 

jedoch auf dem tatsächlichen Chart (areaspline) ich verschiedene Werte erhalten:

  • 30 Aug 48.91
  • 31. August, 49.36
  • 1 Sep 49,6
  • 2. September, 48,87

Nicht ENTI Vergewissere dich, warum dies der Fall ist. Ich gehe davon aus, dass das Diagramm einen Datetime-Typ hat und den Durchschnitt über die Zeit ermittelt. Gibt es eine Möglichkeit, die Werte genau so zu machen, wie sie eingegeben werden? Konnte nichts in der Dokumentation finden

Danke für irgendwelche Ideen/Hilfe/Beratung.


Bei der weiteren Forschung, scheint es, wie es nicht so sehr ein Highcharts Problem ist aber ein ein Reagieren. Ich scheine bei jedem Rendern unterschiedliche Werte zu erhalten. Werde hier weiter schauen und für Neugierige updaten.


Problem schien verwandt zu sein erneutes Rendern zu reagieren und damit meine Prozentwerte neu berechnet - kein Highcharts Problem. Danke für alle, die kommentiert haben, ein bisschen eine wilde Jagd.

+0

können Sie eine jsfiddle dafür erstellen, da Serie ziemlich normal aussieht. –

+0

Ich habe die Frage verpasst, versuchen Sie, das Problem neu zu erstellen, oder fügen Sie den Code ein, den Sie verwenden. In der Demo funktioniert es wie erwartet. http://jsfiddle.net/82zph5no/ – morganfree

Antwort

0

Jamie, damit die Eingabewerte wörtlich genommen werden, müssen Sie entweder den type Wert Ihrer X-Achse nicht setzen oder ihn auf ändern.

Hier ist eine grundlegende Geige ich mit Ihren Daten erstellt zeigen, wie es genau als Eingabe interpretiert werden kann (im Vergleich zu umgerechnet auf Termine): http://jsfiddle.net/brightmatrix/vtLswcex/1/

$(function() { 
    Highcharts.setOptions({ 
    lang: { 
     thousandsSep: ','  // adds comma for axis labels 
    } 
    }); 
    Highcharts.chart('container', { 
    xAxis: { 
     labels: { 
     formatter: function() { 
      return Highcharts.numberFormat(this.value,0); 
     } 
     } 
    }, 
    series: [{ 
     name: "Percentage", 
     data: [ 
     [1472515200000, 49], 
     [1472601600000, 48.83], 
     [1472688000000, 49.6], 
     [1472774400000, 48.77] 
     ] 
    }] 
    }); 
}); 

Bitte beachte, dass ich die Formatierung für die x- hinzugefügt habe Achsen-Labels, sowie ein Tausendertrennzeichen in der Highcharts.setOptions() Funktion, so dass Ihre Etiketten leichter als Billionen lesbar sind.

Hilft dies bei der Beantwortung Ihrer Frage? Wenn Sie stattdessen nach einer besseren Möglichkeit suchen, zeitspezifische Daten zu formatieren, sollten Sie sich den Kommentar von @morganfree genauer ansehen.

+0

Ich denke, Sie haben den Punkt auf der Frage verpasst. Die Y-Werte werden beschädigt. Die Termine sind ziemlich gut, soweit ich das beurteilen kann. –

+0

@VladimirM Ich stimme dir zu, dass die Daten OK aussehen, wenn das tatsächlich das ist, was das OP anstrebt, aber ich habe meine Antwort auf ihre Aussage "Werte genau wie sie eingegeben wurden" basiert. Deshalb habe ich den linearen Ansatz vorgeschlagen. Ich bin gespannt, was genau hier gebraucht wird. –

+0

Mike - Ich denke @ VladimirM's Punkt ist, dass die fraglichen Werte die 'y' Werte sind, nicht die' x' Werte. Wenn Sie sich die Frage ansehen, vergleichen Sie die y-Werte in den Daten mit den y-Werten in der angegebenen Ausgabe. – jlbriggs

Verwandte Themen