如何强制高于最大值的点位于最大网格线上,但仍然在工具提示中显示实际值
How to force points above maximum to be on maximum grid line, but still show real value in tooltip
我正在绘制一个非常简单的折线图,其中包含每天的睡眠时间。所以小时在 y 轴上,日期在 x 轴上。 y 轴从 0 到 23,但有趣的值通常在 3 到 12 之间,所以我只想绘制这些值。这很简单,只需在 yaxis 上定义 min 和 max 即可。
但现在 highcharts 仍然会绘制高于和低于最小和最大 y 值的值。我想要的是让它在 12 最大网格线上绘制大于 12 的值,并在工具提示中显示实际值,而小于 3 的值则相反。
问题说明:https://jsfiddle.net/HhP39/10/
$(function () {
$('#container').highcharts({
chart: {},
yAxis: {
title: {
text: 'Hours'
},
min: 3,
max: 12,
tickInterval: 1
},
series: [{
data: [2,6,13,4,9,12,6,8,1,15,9,7,5,8,14,5,8,2,3]
}]
});
});
如您所见,如果您将鼠标悬停在超出范围的值(例如 2)上,它们仍会产生工具提示。我希望像这样的所有值都移动到最小和最大线上。
有人有什么想法吗?
看看您的 fiddle 的更新:https://jsfiddle.net/HhP39/7/
它正在创建一个原始值数组,然后是一个调整后值数组。该图实际上绘制了调整后的值,但工具提示来自原始值。
data = [2,6,13,4,9,12,6,8,1,15,9,7,5,8,14,5,8,2,3];
series = [];
tooltips = [];
for (var i in data) {
tooltips.push(data[i]);
series.push( Math.max(3, Math.min(data[i], 12)) );
}
然后绘制图表:
$('#container').highcharts({
chart: {},
yAxis: {
title: {
text: 'Hours'
},
min: 3,
max: 12,
tickInterval: 1
},
tooltip: {
formatter: function() {
return ('Real value: ' + data[this.x]);
}
},
series: [{
data: series
}]
});
我正在绘制一个非常简单的折线图,其中包含每天的睡眠时间。所以小时在 y 轴上,日期在 x 轴上。 y 轴从 0 到 23,但有趣的值通常在 3 到 12 之间,所以我只想绘制这些值。这很简单,只需在 yaxis 上定义 min 和 max 即可。
但现在 highcharts 仍然会绘制高于和低于最小和最大 y 值的值。我想要的是让它在 12 最大网格线上绘制大于 12 的值,并在工具提示中显示实际值,而小于 3 的值则相反。
问题说明:https://jsfiddle.net/HhP39/10/
$(function () {
$('#container').highcharts({
chart: {},
yAxis: {
title: {
text: 'Hours'
},
min: 3,
max: 12,
tickInterval: 1
},
series: [{
data: [2,6,13,4,9,12,6,8,1,15,9,7,5,8,14,5,8,2,3]
}]
});
});
如您所见,如果您将鼠标悬停在超出范围的值(例如 2)上,它们仍会产生工具提示。我希望像这样的所有值都移动到最小和最大线上。
有人有什么想法吗?
看看您的 fiddle 的更新:https://jsfiddle.net/HhP39/7/
它正在创建一个原始值数组,然后是一个调整后值数组。该图实际上绘制了调整后的值,但工具提示来自原始值。
data = [2,6,13,4,9,12,6,8,1,15,9,7,5,8,14,5,8,2,3];
series = [];
tooltips = [];
for (var i in data) {
tooltips.push(data[i]);
series.push( Math.max(3, Math.min(data[i], 12)) );
}
然后绘制图表:
$('#container').highcharts({
chart: {},
yAxis: {
title: {
text: 'Hours'
},
min: 3,
max: 12,
tickInterval: 1
},
tooltip: {
formatter: function() {
return ('Real value: ' + data[this.x]);
}
},
series: [{
data: series
}]
});