【问题标题】:Set second axis in proportion of first axis设置第二个轴与第一个轴的比例
【发布时间】:2015-08-11 14:57:35
【问题描述】:

我有一个包含两个系列的图表,每个系列都有自己的yAxis。我需要自动将第二个轴最大值设置为第一个轴最大值的 13.5%。例如,如果第一个轴从 0 到 100,那么我希望第二个轴从 0 到 13.5(不管第二个系列值)。

我发现实现这一点的唯一方法是计算第一个系列的最大值,然后将其影响到第二个轴的最大值。但这不是我真正想要的。 See this JSFiddle.

我的小提琴似乎有效,但实际上,我并没有很好地计算第二个轴的最大值,因为我指的是第一个 series 最大值而不是第一个 axis 最大值。

有谁知道将轴的最大值设置为另一个轴的最大值的一般方法?

Highcharts 轴的linkedTo 属性接近我想要的,但我需要添加一个系数。我不知道如何继续。

【问题讨论】:

    标签: javascript highcharts axis


    【解决方案1】:

    Highcharts 中没有允许这样做的默认 API 函数。

    如果您想获取创建轴的最大值百分比,那么您可以在图表的加载事件(API:http://api.highcharts.com/highcharts#chart.events.load)或回调中获取它(如下面的演示)。接下来您需要更新第二个轴的最大值。

    示例:http://jsfiddle.net/cg0c5tkd/

    function(chart){
            chart.yAxis[1].update({max: chart.yAxis[0].getExtremes().max * 0.135});
        }
    

    【讨论】:

    • 回调是一个非常好的主意!我不知道Highcharts.Chart() 有第二个参数。谢谢,就像一个魅力。
    • 我刚刚意识到当我向下钻取时它不起作用:第二个轴与向下钻取之前的值保持固定。关于在钻取后如何修改此轴的任何想法?我只找到了下钻事件,它是在图表实际下钻之前。 (对不起,如果我不清楚)
    • @Kabulan0lak 你能发布现场示例,比如 jsFiddle 吗?您可以在 setTimeout 中调用此函数。零毫秒的延迟似乎是足够的时间。示例:jsfiddle.net/zd5do0s7
    • 我已经为这个问题创建了一个新帖子,但你又解决了这一切 :) 谢谢!我很惊讶当我在控制台中记录图表时,我有yAxis[0].max = 25000,但是当我直接登录chart.yAxis[0].max 时,它会打印80000。setTimeout() 函数解决了这个问题。再一次非常感谢你。新帖:stackoverflow.com/questions/32068994/…
    • 您能在上面写一个答案,以便我验证解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多