Highcharts Demo
author(s):
Torstein Hønsi
by Torstein Hønsi
HTML
<script src="http://code.highcharts.com/highcharts.js"></script>
<div id="container" style="height: 400px"></div>
JavaScript
$(function () {
/**
* Experimental Highcharts plugin to implement chart.alignThreshold option.
* Author: Torstein Hønsi
* Last revision: 2013-12-02
*/ (function (H) {
var each = H.each;
H.wrap(H.Chart.prototype, 'adjustTickAmounts', function (proceed) {
var ticksBelowThreshold = 0,
ticksAboveThreshold = 0;
if (this.options.chart.alignThresholds) {
each(this.yAxis, function (axis) {
var threshold = axis.series[0] && axis.series[0].options.threshold || 0,
index = axis.tickPositions && axis.tickPositions.indexOf(threshold);
if (index !== undefined && index !== -1) {
axis.ticksBelowThreshold = index;
axis.ticksAboveThreshold = axis.tickPositions.length - index;
ticksBelowThreshold = Math.max(ticksBelowThreshold, index);
ticksAboveThreshold = Math.max(ticksAboveThreshold, axis.ticksAboveThreshold);
}
});
each(this.yAxis, function (axis) {
var tickPositions = axis.tickPositions;
if (tickPositions) {
if (axis.ticksAboveThreshold < ticksAboveThreshold) {
while (axis.ticksAboveThreshold < ticksAboveThreshold) {
tickPositions.push(
tickPositions[tickPositions.length - 1] + axis.tickInterval);
axis.ticksAboveThreshold++;
}
}
if (axis.ticksBelowThreshold < ticksBelowThreshold) {
while (axis.ticksBelowThreshold < ticksBelowThreshold) {
tickPositions.unshift(
tickPositions[0] - axis.tickInterval);
...