我有带对数y轴的条形图。当我将y轴设置为接近0(例如0.1)时,刻度之间的间距看起来相等。但是当我根据要求将min设置为1000时,图表会改变其行为,并且刻度之间的间隔变得不均匀。这是一个示例https://jsfiddle.net/2vh9h2q3/。这是代码本身:
new Highcharts.Chart({
"chart": {
"zoomType": "xy",
"renderTo": $('#container')[0],
"type": 'bar'
},
"title": {
"text": null
},
"subtitle": {
"text": null
},
"credits": {
"enabled": false
},
"exporting": {
"enabled": false
},
"xAxis": {
"categories": ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
"title": {
"text": null
},
"labels": {
"align": "left",
"x": 10
},
"lineWidth": 0,
"tickWidth": 0
},
"yAxis": {
"type": "logarithmic",
"min": 1000,
"labels": {
"formatter": function() {
return this.value % 1000 === 0 ? this.value / 1000 + "k" : this.value;
}
},
"title": {
"text": null
}
},
"tooltip": {
"useHTML": true,
"shadow": false
},
"plotOptions": {
"bar": {
"dataLabels": {
"enabled": false
}
},
"series": {
"cursor": "pointer"
}
},
"series": [{
"showInLegend": false,
"data": [4951,1200,0,0,196484,179580,0,0,0,324,87014, 11]
}]
});
我想将min留作1000并在刻度之间得到均匀的空格。我尝试使用刻度选项,但它没有成功
答案 0 :(得分:1)
如果您想手动设置刻度线的位置以使它们彼此之间的距离相同,您可以使用tickPositions或tickPositioner:
"yAxis": {
"type": "logarithmic",
"min": 1000,
"labels": {
"formatter": function() {
return this.value % 1000 === 0 ? this.value / 1000 + "k" : this.value;
}
},
"tickPositions": [3, 4, 5, 6],
"title": {
"text": null
}
},
在这种情况下,tickPositions数组中的数字是10的幂。因此,例如,如果您的值等于3,您将看到10 ^ 3 = 1000值的刻度。
在这里您可以找到一个如何工作的示例: https://jsfiddle.net/2vh9h2q3/1/
如果你想使用对数轴,你需要记住你不应该使用小于或等于0的值。