2017-04-21 2 views
2

Ich werte die Umstellung von JFreeChart zu dygraphs, aber ich bin auf der Suche nach einer Möglichkeit, 1-Log (x) -Werte auf X-Achse zu haben; größere Zecken (mit gleichen Abständen) wären 90%, 99%, 99,9%, 99,99% und so weiter. Ist es möglich, Transformationsfunktion entwederKann dygraphs anpassen X-Achsen-Skalierung

a) von Daten zur Position in der grafischen Darstellung

oder

b) Visualisierung Transformation (ich konnte erzeugen, um die Daten in normalisierter Form zur Verfügung zu stellen, aber dann sollen alle Etikett sein konvertiert)

Auf der Suche nach logscale hat sich gezeigt, dass es keinen Ort gibt, an dem man eine lineare/logarithmische Transformation vornehmen kann, also bin ich skeptisch gegenüber a).

Vielen Dank (beachten Sie, dass JFreeChart natürlich nicht das Out-of-the-Box bietet, aber da ich Java besser beherrsche, konnte ich das zusammen hacken).

Antwort

1

Sie können eine benutzerdefinierte ticker für die X-Achse schreiben, damit die Dagraphen zeigen, was immer Sie möchten. Die Dokumentreferenz this explanatory comment in der Implementierung. Eine Inspiration finden Sie unter this answer.

g = new Dygraph(div, data, { 
    axes: { 
    x: { 
     ticker(min, max, pixels, opts, dygraph, vals) { 
     return [ 
      { v: 0.9, label:'90%' }, 
      { v: 0.99, label: '99%' }, 
      { v: 0.999, label: '99.9%' } 
     ]; 
     } 
    } 
    } 
}); 

Wie für die Darstellung, dass auf einer logarithmischen Skala, die beste Wahl wäre, um Ihre x-Werte zu verwandeln, bevor sie zu dygraphs vorbei, dann sie zurück zur Anzeige Umwandlung (mit valueFormatter).