我怎样才能迫使多个y轴Highcharts有一个共同的零(How can I force multi

2019-08-31 12:05发布

看到这个的jsfiddle 。 如何获得y轴零对齐?

Answer 1:

简短的回答是:你不能。

你可以调整轴缩放,填充和刻度位置等,并有可能得到你想要的东西,但没有设定实现这一目标。

有一个功能请求虽然,您可以添加您的投票和/或意见:

http://highcharts.uservoice.com/forums/55896-general/suggestions/2554384-multiple-axis-alignment-control

编辑:OTOH,我不得不提的是双轴图表这样是最常见的,显示的数据非常差的方式,并邀请用户进行无效的比较。

虽然大多数人总是试图把一切都放在一个图表,多个图表,很多时候是更好的解决方案。

FWIW



Answer 2:

您可以先设置Y轴最小值/最大值,并使用linkedTo第二轴,但我不知道,如果你希望这样的效果:

http://jsfiddle.net/qkDXv/2/

yAxis: [{ // Primary yAxis
            labels: {
                format: '{value}°C',
                style: {
                    color: '#89A54E'
                }
            },
            title: {
                text: 'Temperature',
                style: {
                    color: '#89A54E'
                }
            },
            min:-250,
            max:50
            //linkedTo:1
        }, { // Secondary yAxis
            title: {
                text: 'Rainfall',
                style: {
                    color: '#4572A7'
                }
            },
            labels: {
                format: '{value} mm',
                style: {
                    color: '#4572A7'
                }
            },
            opposite: true,
            linkedTo:0
        }],


Answer 3:

简单的解决方法,直到该功能被添加是确保最大的比率/分钟对于两个轴是相同的。 例如是用于主y轴上的最小和最大值被-20和40,例如,然后将最大/最小比为-2。 现在说,我们有一个最大值为25辅助y轴如果我们设置最小,以便该轴25 / -2(= -12.5),则y = 0的线将被用于两个轴对齐。

会好得多自动,虽然有一个标志,设置该;-)

编辑:像下面的一些事情的工作确定对我来说:

yAxis0Extremes = chart.yAxis[0].getExtremes();
yAxisMaxMinRatio = yAxis0Extremes.max / yAxis0Extremes.min;
yAxis1Extremes = chart.yAxis[1].getExtremes();
yAxis1Min = (yAxis1Extremes.max / yAxisMaxMinRatio).toFixed(0);
chart.yAxis[1].setExtremes(yAxis1Min, yAxis1Extremes.max);


Answer 4:

我知道它已经两年的一年。 然而,我却发现了一个更好的解决方案进行比较存在这是在以前的答案给出解决方案。 我的解决方案仍然使用setExtremes设置最小值,最大值为Y轴,但有更好的异常处理,这是非常好的show()hide()的任何情节。 解决方案: 链接
Github上: 链接



Answer 5:

最简单的方法是只为每个轴相同的最小值/最大值。 这将是一个非常简单的判断基于对剧情之前,先调用数据的好最小值/最大值(组合阵列,以最小/最大一轮下降/上升到最近的整型,将是我的方法)。

pretend this is code so I can link to jsFiddle

更新小提琴 。



Answer 6:

您可以通过以下下面的代码 - 很容易做到这一点

你只需要找到该相对ÿ轴的点满足第一y轴的零和奥普y轴的分钟设置为(即点* -1)

在我的情况YAXIS [1]构成主y轴和y轴[0]形成的相对y轴

 }, function(chart) { // on complete
        var factor = chart.yAxis[1].min  / chart.yAxis[1].tickInterval
        var tick = chart.yAxis[0].tickInterval;
        var _min = chart.yAxis[0].tickInterval * factor 
        chart.yAxis[0].update({ min: _min });
        chart.yAxis[0].update({ tickInterval: tick });



    });


文章来源: How can I force multiple y-axis in Highcharts to have a common zero
标签: highcharts