2016-04-26 3 views
0

Ich muss ein Diagramm mit der Highcharts-Bibliothek rendern, aber ich muss die y-Achse logarithmisch sein. Dies ist einfach, indem Sie den yAxis-Typ auf logarithmic setzen.Highcharts Log-Achse in der Basis 2

jedoch die Zecken auf der Achse sind Zehnerpotenzen gleichen Abstand: 0,01, 0,1, 1, 10, 100, ...

I genau das Gleiche möchte aber in der Basis 2: gleich beabstandete Ticks mit den auf der Achse geschriebenen Werten sind Potenzen von zwei: 0,5, 1, 2, 4, 8, 16, ...

Wenn die Anzahl der Ticks und die Min - und Max - Werte von den Daten (wie der normale Basis 10 Log-Skala), das wäre großartig.

Irgendwelche Vorschläge? Nachdem ich im Web logarithmische Szenarien durchforstet habe, fand ich für dieses Problem nichts Relevantes.

Danke!

Antwort

3

Dies wäre ein schneller Weg, es zu tun (JSFiddle):

Highcharts.Axis.prototype.log2lin = function (num) { 
    return Math.log(num)/Math.LN2; 
}; 

Highcharts.Axis.prototype.lin2log = function (num) { 
    return Math.pow(2, num); 
}; 

Sie möchten vielleicht Axis.prototype.getLogTickPositions neu zu schreiben, wenn Sie minorTickInterval Unterstützung benötigen.

+0

Einfach und effizient. Vielen Dank ! – ffarquet