我正在尝试创建一个散点图,当您选择一个点时,它将创建一个包含不同数据的新图形。这很好。
问题是当您放大第二个散点图然后按重置缩放时,图表会调整大小并向左推送所有数据(我假设因为我的所有数据点都具有相同的x坐标或因为值非常小)。我想通过使用setExtremes(),重置缩放将使用这些值作为最小值和最大值。
这是JSFiddle:http://jsfiddle.net/kzBxB/5/
以下是我用来创建新图表的功能。我是否需要更改任何内容以使'重置缩放'注册我的给定xAxis最小值和最大值?
function newPoints() {
var chart = jQuery('#container').highcharts();
for (var i = 0; i < chart.series.length; i++) {
serie = chart.series[i];
//sets the new x axis and new data
chart.yAxis[0].setExtremes(0, 10);
chart.xAxis[0].setExtremes(.001, .003);
chart.addSeries({
type: 'scatter',
name: serie.name,
data: [
[.002, 1],
[.002, 2],
[.002, 3],
[.002, 4],
[.002, 5][.002, 6]
]
}, false);
//removes the old series
serie.remove(false);
}
//redraws the chart
chart.redraw();
}
答案 0 :(得分:1)
问题是所有值都具有相同的x值,因此Highcharts不知道在哪里绘制它们(点的范围是多少)。在这种情况下,我建议使用afterSetExtremes事件:
xAxis: {
events: {
afterSetExtremes: function(e){
if(e.min === e.max){
this.setExtremes(.001, .003);
}
}
}
},