Javascript 高图Y轴极限

Javascript 高图Y轴极限,javascript,highcharts,Javascript,Highcharts,我在控制highcharts图形的Y轴范围时遇到问题。似乎海图喜欢漂亮的整数。当我的数据通过或接近某些阈值时,Y轴范围会扩大很多,从而有效地向下压缩所有绘图点 下面是一个JSFIDLE,它说明了我遇到的问题: 该职位的相关代码如下: chart.yAxis[0].setExtremes(0, max, true, false); 请记住,我事先不知道数据会是什么样子,因此我必须动态修改Y轴范围。现在我正在使用setextrems,因为我已经阅读了stackoverflow 前两个图表中数据的

我在控制highcharts图形的Y轴范围时遇到问题。似乎海图喜欢漂亮的整数。当我的数据通过或接近某些阈值时,Y轴范围会扩大很多,从而有效地向下压缩所有绘图点

下面是一个JSFIDLE,它说明了我遇到的问题:

该职位的相关代码如下:

chart.yAxis[0].setExtremes(0, max, true, false);
请记住,我事先不知道数据会是什么样子,因此我必须动态修改Y轴范围。现在我正在使用setextrems,因为我已经阅读了stackoverflow

前两个图表中数据的最大y值为99。您会注意到,y轴在第一个图表中设置为150,其中范围自动计算,在第二个图表中设置为100,其中我专门设置了极值。第二张图表的外观就是我想要的。因此,似乎setextrems(0,99,true,false)应该起到作用,但实际上并没有

在第三张图表中,我更改了数据,使数据的最大y值为101,我称之为setextrems(0101,true,false)。您将注意到y轴现在回到150

理想情况下,我希望图形的比例限制在最大值上,以限制额外的空白。我想查看所有数据,但我不一定关心y轴显示的最大频带是否大于最大数据值。在这种情况下,我很高兴y轴在轴上显示100,一些点在上面,但仍然可见


有人知道如何进行此操作吗?

您需要读取数据,然后四舍五入设置
idealMax

var chart,
    idealMax = 0; // init the max value

// Read the data to find the highest value
for (i=0;i < (options.series[0].data).length; i++ ){
    if (options.series[0].data[i][1] > idealMax) {
        idealMax = options.series[0].data[i][1];
    }
}

// Round the max to the nearest 10
idealMax = Math.round(idealMax / 10) * 10;

options.yAxis.tickPixelInterval = idealMax/10;

Highcharts.chart('container1', options);

chart = $('#container1').highcharts();
chart.yAxis[0].setExtremes(0, idealMax, true, false);
var图,
idealMax=0;//初始化最大值
//读取数据以查找最大值
对于(i=0;i<(options.series[0].data).长度;i++){
if(options.series[0].data[i][1]>idealMax){
idealMax=options.series[0]。数据[i][1];
}
}
//将最大值四舍五入到最接近的10
idealMax=数学四舍五入(idealMax/10)*10;
options.yAxis.tickPixelInterval=idealMax/10;
Highcharts.chart('container1',选项);
chart=$(“#container1”).highcharts();
chart.yAxis[0].setextrems(0,idealMax,true,false);

我最终使用endOnTick参数来解决这个问题。将以下行添加到yAxis配置参数正是我想要的:

endOnTick: false,
这是显示结果的最新小提琴


在我看来,所有的图表都很不错(即使是自动计算yAxis范围的图表)。

我认为这并不能解决问题。将第三张图表中的“最大值”设置为100会使范围缩小到100,但也会裁剪数据。将第三张图表中的“最大值”设置为110会产生与将其设置为101完全相同的结果。在这两种情况下,y轴最大值均为150。您的小提琴的效果基本上与我在小提琴图2中所做的相同。您可以通过将小提琴中javascript的第23行更改为[151485120000006]@ShannonWrege来验证这一点,我更新我的答案,添加
tickPixelInterval
,你必须根据你的数据找到最佳值。很好的建议!这让图表看起来好多了。这实际上让我深入研究了highcharts API文档,我发现了一个更好的解决方案:
endOnTick
还可以考虑: