在 Highcharts 中为柱形图设置最小默认范围

Set a minimal default range for a column chart in Highcharts

我将 Highcharts 用于具有正百分比值和负百分比值的柱形图。

我总是希望图表的 y 轴至少显示 -50% 和 +30% 之间的范围,无论值是什么。但是,如果值大于 30% 或小于 -50%,则 y 轴的范围应相应调整。如果我使用 yAxis: {min: -50, max: 30} 当我有更大的值时范围不会变大。

有办法吗?或者我是否必须在 Highcharts 计算出范围后以编程方式更新它?

您可以自己编写函数来定位刻度,它是tickPositioner

目前你必须自己做。 它可以通过 运行 检查 min/max 并在需要时重置的功能来完成。

像这样的东西(快速肮脏的例子):

function setMinAxisExtremes(chart, axis, min, max) {
    var ax = axis == 'y' ? chart.yAxis[0] : chart.xAxis[0];    
    var ext = ax.getExtremes();
    min = ext.min > min ? min : ext.min;    
    max = ext.max < max ? max : ext.max;
    ax.setExtremes(min,max);    
}

示例:

(如上所述,有一项功能要求让 Highcharts 使用内置的 属性 执行此操作,这非常需要投票,此处:http://highcharts.uservoice.com/forums/55896-general/suggestions/1848953-extend-the-axis-max-property-to-act-like-css-mi