Kos*_*tos 5 javascript highcharts
我们试图在同一图表上显示两个系列的数据.第一个系列(即:引用数)只能包含正整数(和0).第二个系列(即:销售价值)可以包含正浮动值和负浮动值(如果您想知道,负值是由发行信用票据产生的).
如附图所示,我们遇到的问题是,当第二个系列包含负值时,不再共享两个数据系列的0点"基线".

我们已经尝试将Y轴的"min"选项设置为0,但是我们失去了对负值的洞察力.
我们还尝试将第一个系列的min设置为等于第二个系列的最小极限,但不幸的是,这并不能很好地缩放列(因为每个Y轴的值都在完全不同的比例上,即:10s vs 1000s).
我们如何配置图表以便共享0点"基线"?换句话说,我们如何使蓝色列从与绿色0点相同的基线开始?
更新
灵儿的答案是朝着正确方向迈出的一步.设置min和tickinterval两个轴都可以解决问题.但是,需要根据可变数据动态确定值,这是我现在所处的位置.
在生成图表之前,有关如何确定这些min和tickinterval值的任何提示?
我在同一时间做了一些思考.与左轴(蓝色/报价)关联的值始终为正,从零开始.因此,右轴(绿色/销售)决定了零点以下的刻度数.现在,由于highcharts自动确定蓝色和绿色的最佳比例,所以我需要做的就是找到一种方法来设置左轴的最小值,这样做(原谅伪代码):
var factor = right_axis.min / right_axis.tickinterval;
left_axis.min = factor * left.tickinterval;
Run Code Online (Sandbox Code Playgroud)
注意:我已经看到引用API在Axis下有一个setExtremes()方法,但这需要我首先初始化图表,然后返回并更新其左轴.我希望在绘制图表之前这样做.也许我忽略了一些明显的东西?
谢谢.
您可以通过y 轴上的tickInterval和min组合来控制您所要求的内容,如这个jsfiddle模型所示。
编辑
在代码中读取 XML 时,您必须跟踪销售方面的最低值和最高值。然后决定在这些值满足特定值时如何显示这些值。之后使用 if 语句设置值。这里有几个例子。
Low less than -50 and greater -90
With High less than 400
Primary Axis: min: -2, tickInterval: 1,
Secondary Axis: min: -100, tickInterval: 50
Run Code Online (Sandbox Code Playgroud)
Low less than -50 and greater -90
With High greater than 400
Primary Axis: min: -1, tickInterval: 1,
Secondary Axis: min: min: -100, tickInterval: 100,
Run Code Online (Sandbox Code Playgroud)
要确定主轴上的最小值应该是多少,您只需将辅助轴上的最小值除以其tickInterval即可。那么主轴的tickInterval 将始终为1。