【问题标题】:Highcharts reset y AxisHighcharts 重置 y 轴
【发布时间】:2015-01-19 10:49:33
【问题描述】:

首先,我的页面上有几个图表 - 为了更容易比较不同图表中的数据,我将最大 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
            });
        }
    });
});

【问题讨论】:

    标签: javascript highcharts reset


    【解决方案1】:

    您可以简单地从轴中删除极端值。一般来说,我建议使用axis.setExtremes(min, max) 而不是axis.update(options)setExtremes 应该比 update 有更好的性能。

    代码:

    $('#setDefault').click(function (ev) {
        $('[data-chart]').each(function (item) {
            $(this).highcharts().yAxis[0].setExtremes(null, null);
        });
    });
    

    还有演示:http://jsfiddle.net/0p4z1mfj/9/

    【讨论】:

    • 此解决方案对于我推出轴极值以避免图表元素被截断但需要用新数据重新绘制的图表非常有用。使用“null”将极值设置为默认值可防止图表在每次重绘后不断扩展。
    • 哪些元素被截断了?它不应该发生。
    • 我有一个气泡图,其中某些气泡会在一个边缘被切断。我使用setExtremes() 将轴推出一个单位以使其适合。你上面关于 null 重置极值的答案是我在重绘图表时使用的:重置极值,重绘图表,将极值推开一个单位,重复。
    • 哦,泡泡..只要我们使用线性/日期时间轴就可以了。但是例如对数轴不起作用。如果您发现线性/日期时间轴有问题,请告诉我 - 这可能是一个错误,我们应该在核心中修复它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    相关资源
    最近更新 更多