我在使用setExtremes函數修改Highchart的yAxis極值時發現了一個小問題。 樣品在的jsfiddle - >http://jsfiddle.net/dhjqoycm/在Highchart中動態修改yAxis極值時的問題
HTML
<script src="//code.highcharts.com/4.1.4/highcharts.js"></script>
<div id="container"></div>
<input id="btnSetExtremes1" type="button" value="chart.yAxis[0].setExtremes(-38,65)"></input>
<br/>
<br/>
<input id="btnSetExtremes2" type="button" value="chart.yAxis[0].setExtremes(-100,100)"></input>
<br/>
<br/>
<input id="btnRevertToOriginal" type="button" value="Revert to Original Extremes"></input>
<br/><hr>
<label><b><u>Test with Your Own Extremes</u></b></label>
<br/><br/>
<input id="txtMin" type="textbox" placeholder="Enter Min Extreme"></input>
<input id="txtMax" type="textbox" placeholder="Enter Max Extreme"></input>
<input id="btnSetManualExtremes" type="button" value="Set Extremes to Chart"></input>
JAVASCRIPT
$(function() {
$('#container').highcharts({
title: {
text: 'Monthly Average Temperature',
x: -20 //center
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
yAxis: {
title: {
text: 'Temperature (°C)'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
legend: {
enabled: false
},
series: [{
name: 'Vancouver',
data: [-29.9, -26.3, -20.8, -15.75, -11.9, -5.6, 0.6, -10.5, -16.8, -23.3, -28, {
dataLabels: {
enabled: true,
align: 'right',
formatter: function() {
return this.series.name;
},
x: 0,
verticalAlign: 'bottom'
},
y: -28
}]
}]
});
var iOriginalMinExtreme = $('#container').highcharts().yAxis[0].getExtremes().min;
var iOriginalMaxExtreme = $('#container').highcharts().yAxis[0].getExtremes().max;
// the setExtremes1 button action
$('#btnSetExtremes1').click(function() {
var chart = $('#container').highcharts();
chart.yAxis[0].setExtremes(-38, 65);
});
// the setExtremes2 button action
$('#btnSetExtremes2').click(function() {
var chart = $('#container').highcharts();
chart.yAxis[0].setExtremes(-100, 100);
});
// the setExtremes2 button action
$('#btnRevertToOriginal').click(function() {
var chart = $('#container').highcharts();
chart.yAxis[0].setExtremes(iOriginalMinExtreme, iOriginalMaxExtreme);
});
// the setExtremes2 button action
$('#btnSetManualExtremes').click(function() {
var chart = $('#container').highcharts();
chart.yAxis[0].setExtremes($('#txtMin').val(), $('#txtMax').val());
});
});
在上述的jsfiddle樣品中,當「chart.yAxis [0] .setExtremes( -100,100)「按鈕被點擊,yAxis極值被設置爲從-100到100,這是完美的。當單擊「chart.yAxis [0] .setExtremes(-38,65)」時,y軸的極值預計爲-38和65(根據給定的輸入值),但圖表中設置的實際極值爲從-50到75.
圖中顯示的極值是否有任何方式與給定的輸入相同?在這種情況下,圖表應該顯示y軸從-38到65,而不是-50到75.
謝謝。
Hi Pawel,有沒有什麼辦法可以在創建圖表時根據一些條件將tickPositioner函數添加到折線圖的y軸上?或者我可以用任何方式在圖表渲染完成後更改折線圖yAxis中的位置(解釋:我已經創建了折線圖。點擊自定義按鈕時,需要將tickPositioner函數添加到yAxis中,圖表應該重新生成 - 基於我的tickPositioner函數給出的新滴答)。謝謝:) – Vicky
當然,解釋是關鍵;只需使用'chart.yAxis [0] .update(options)',在opions中你將設置新的'tickPositioner'函數。 –
非常感謝Pawel。這工作完美:) – Vicky