我们正在使用对数刻度比较多个系列。大多数情况下,图表看起来很好,并且可以正确缩放到数据的最小/最大值。在下面的示例中,顶部系列被切断。唯一改变的是数据。如果我们将时间段更改为任何其他选项,它将正确重新缩放,回到 1Y 有同样的问题。有没有办法解决这个问题?
我的第二个问题是关于对数刻度时网格线/标签的逻辑。默认情况下,这些步骤不应该基于 Log(10),例如 [0.10%, 1%, 10%, 100%, 1000%]?是否有配置选项来设置它?在下面的示例中,默认的 [0.10, 0.20, 0.40, 1.00] 没有多大意义。
这就是标签/刻度应该始终看起来的样子: jsfiddle.net/TeTMw/1
编辑:
这是导致此错误的 highcharts 代码。如果您能帮助解决此问题,那就太好了。
// Second case: We need intermediary ticks. For example
// 1, 2, 4, 6, 8, 10, 20, 40 etc.
} else if (interval >= 0.08) {
var roundedMin = mathFloor(min),
intermediate,
i,
j,
len,
pos,
lastPos,
break2;
if (interval > 0.3) {
intermediate = [1, 2, 4];
} else if (interval > 0.15) { // 0.2 equals five minor ticks per 1, 10, 100 etc
intermediate = [1, 2, 4, 6, 8];
} else { // 0.1 equals ten minor ticks per 1, 10, 100 etc
intermediate = [1, 2, 3, 4, 5, 6, 7, 8, 9];
}
for (i = roundedMin; i < max + 1 && !break2; i++) {
len = intermediate.length;
for (j = 0; j < len && !break2; j++) {
pos = log2lin(lin2log(i) * intermediate[j]);
if (pos > min && lastPos <= max) {
positions.push(lastPos);
}
if (lastPos > max) {
break2 = true;
}
lastPos = pos;
}
}