前言,我在这里使用扩展对数函数来表示负数和小数:
/**
* Custom Axis extension to allow emulation of negative values on a
logarithmic
* Y axis. Note that the scale is not mathematically correct, as a true
* logarithmic axis never reaches or crosses zero.
*/
(function (H) {
// Pass error messages
H.Axis.prototype.allowNegativeLog = true;
// Override conversions
H.Axis.prototype.log2lin = function (num) {
var isNegative = num < 0,
adjustedNum = Math.abs(num),
result;
if (adjustedNum < 10) {
console.log('adjustedNum: ', adjustedNum);
adjustedNum += (10 - adjustedNum) / 10;
}
result = Math.log(adjustedNum) / Math.LN10;
if (adjustedNum < 10) console.log('result: ', result);
return isNegative ? -result : result;
};
H.Axis.prototype.lin2log = function (num) {
var isNegative = num < 0,
absNum = Math.abs(num),
result = Math.pow(10, absNum);
if (result < 10) {
result = (10 * (result - 1)) / (10 - 1);
}
return isNegative ? -result : result;
};
}(Highcharts));
因此,如果我的y轴的dataMin为0.22,dataMax为2.34,则使用对数刻度,我得到的唯一滴答是[0,1]指定0和10,图表的底部和顶部,中间没有刻度线。
1)有没有办法可以在日志图表中指定我想要的滴答数(tickAmount:5不起作用)? 2)有没有办法可以收紧蜱落下的范围? (就像在这种情况下,它设置轴的数据值在0到10之间,即使我的数据系列只在0.22和2.34之间)。
谢谢!
答案 0 :(得分:0)
<强> 1 强>
tickPositions
和tickPositioner
选项可让您控制滴答滴答的确切位置。
<强> 2 强>
您可以尝试调整tickInterval
选项:http://jsfiddle.net/BlackLabel/8v3xuyot/
yAxis: {
type: 'logarithmic',
tickInterval: 0.2
}
API参考: