如何删除 Highcharts 中没有数据点的轴标签?
How to remove axis labels without data points in Highcharts?
我正在使用 x 轴 minRange
让我的数据点始终从 x 轴的左侧开始。我的数据集最多可以有 9 个点。每当我的集合只有一个或几个数据点时,如果我没有将 minRange
设置为正确的值,这些数据点最终将集中在图表中。我的 x 轴设置为 categories: []
以将我的时间值用作字符串而不是日期值。问题是,当我只有两个数据点和 minRange = 9
时,我将有七个轴标签,编号为 2-9,没有数据点。我怎样才能去掉这些标签?
var json = [{"price":"15","time":"12:00"},{"price":"20","time":"12:30"}];
var processed_json = new Array();
$.map(json, function (obj, i) {
processed_json.push({name: obj.time,y: parseInt(obj.price) });
});
$('#container').highcharts({
xAxis: {
categories: [],
minRange: 9,
min: 0
},
yAxis: {
minRange: 30
},
series: [{
data: processed_json
}]
});
另一种方法是手动将类别列表提供给 highcharts 库。这个想法是让类别对应于以 obj.time 命名的数据点,其余类别只是空字符串。
var categoryCount = 10;
var json = [{"price":"15","time":"12:00"},{"price":"20","time":"12:30"}];
var processed_json = new Array();
var categories = new Array(categoryCount);
categories.fill("", 0, categoryCount); //Fill list of categories with empty strings
$.map(json, function (obj, i) {
processed_json.push({name: obj.time,y: parseInt(obj.price) });
categories[i] = obj.time; //Set the time for particular category
});
$('#container').highcharts({
xAxis: {
categories: categories,
minRange: categoryCount - 1,
min: 0
},
yAxis: {
minRange: 30
},
plotOptions: {
},
series: [{
data: processed_json
}]
});
在此特定情况下,变量类别应类似于 ["12:00", "12:30", "", "", "", "", "", "", ""]。
我会为此使用 tickPositions
。
您可以在用于构建数据的同一循环中构建 tickPositions
数组,只需添加:
tickPositions.push(i);
示例:
我正在使用 x 轴 minRange
让我的数据点始终从 x 轴的左侧开始。我的数据集最多可以有 9 个点。每当我的集合只有一个或几个数据点时,如果我没有将 minRange
设置为正确的值,这些数据点最终将集中在图表中。我的 x 轴设置为 categories: []
以将我的时间值用作字符串而不是日期值。问题是,当我只有两个数据点和 minRange = 9
时,我将有七个轴标签,编号为 2-9,没有数据点。我怎样才能去掉这些标签?
var json = [{"price":"15","time":"12:00"},{"price":"20","time":"12:30"}];
var processed_json = new Array();
$.map(json, function (obj, i) {
processed_json.push({name: obj.time,y: parseInt(obj.price) });
});
$('#container').highcharts({
xAxis: {
categories: [],
minRange: 9,
min: 0
},
yAxis: {
minRange: 30
},
series: [{
data: processed_json
}]
});
另一种方法是手动将类别列表提供给 highcharts 库。这个想法是让类别对应于以 obj.time 命名的数据点,其余类别只是空字符串。
var categoryCount = 10;
var json = [{"price":"15","time":"12:00"},{"price":"20","time":"12:30"}];
var processed_json = new Array();
var categories = new Array(categoryCount);
categories.fill("", 0, categoryCount); //Fill list of categories with empty strings
$.map(json, function (obj, i) {
processed_json.push({name: obj.time,y: parseInt(obj.price) });
categories[i] = obj.time; //Set the time for particular category
});
$('#container').highcharts({
xAxis: {
categories: categories,
minRange: categoryCount - 1,
min: 0
},
yAxis: {
minRange: 30
},
plotOptions: {
},
series: [{
data: processed_json
}]
});
在此特定情况下,变量类别应类似于 ["12:00", "12:30", "", "", "", "", "", "", ""]。
我会为此使用 tickPositions
。
您可以在用于构建数据的同一循环中构建 tickPositions
数组,只需添加:
tickPositions.push(i);
示例: