Highcharts 重置 y 轴

5

首先,我的页面上有几张图表 - 为了更容易地比较不同图表中的数据,我设置yAxis的最大值为可用的最高值。

问题: 如何恢复我刚刚设置的最大值而不重新获取数据? 我正在寻找像“自动缩放”这样的东西,如果我添加11245的最大值,则最大yAxis大约为12500。 我想恢复所有我的图表。

演示: http://jsfiddle.net/wiesson/0p4z1mfj

$('#setMax').click(function (ev) {
    var yAxisMax = 0;
    $('[data-chart]').each(function (item) {
        var c = $(this).highcharts();
        if (c.yAxis[0].max > yAxisMax) {
            yAxisMax = c.yAxis[0].max;
        }
    });

    $('[data-chart]').each(function (item) {
        c = $(this).highcharts();
        if (c.yAxis[0].max < yAxisMax) {
            c.yAxis[0].update({
                max: yAxisMax
            });
        }
    });
});
1个回答

4
您可以简单地从轴中删除极值。一般来说,我建议使用axis.setExtremes(min,max)而不是axis.update(options)。与update相比,setExtremes的性能应该更好。
代码:
$('#setDefault').click(function (ev) {
    $('[data-chart]').each(function (item) {
        $(this).highcharts().yAxis[0].setExtremes(null, null);
    });
});

And demo: http://jsfiddle.net/0p4z1mfj/9/


这个解决方案对于一个图表非常有帮助,我将轴极限推出以避免图表元素被截断,但需要使用新数据重新绘制它。使用“null”将极限设置回默认值,防止图表在每次重绘后不断扩展。 - Mike Zavarello
哪些元素被剪掉了?这种情况不应该发生。 - Paweł Fus
我有一个气泡图,其中某些气泡的一侧会被切断。我使用了 setExtremes() 将轴向外推一个单位,以使它们适合。您上面提供的将 null 用于重置极值的答案是我在重新绘制图表时使用的:重置极值,重新绘制图表,将极值向外推一个单位,重复此过程。 - Mike Zavarello
哦,冒泡图...只要我们使用线性/日期时间轴就没问题。但是对于对数轴来说,就不行了。如果您发现线性/日期时间轴有问题,请告诉我 - 这可能是一个错误,我们应该在核心代码中修复它。 - Paweł Fus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接