重現步驟。通過點擊圖例隱藏所有系列時的圖表渲染問題
- 我們有一個顯示4個數據系列的圖表,每個系列都有相應的圖例。
- 最初的圖表加載了1年的數據。
- 然後,我們通過點擊4個圖例刪除圖表中的所有數據系列
- 然後,我們更改圖表的縮放級別 - 例如,從6個月的變焦,到3個月的變焦。 (注意:我們更改縮放但不顯示任何數據序列)。
- 然後,我們通過點擊圖例重新啓用數據系列。
該圖表無法正確重畫。要讓圖表重繪,我們必須重新加載整個頁面。
<script src="http://code.highcharts.com/stock/highstock.js"></script> <script src="http://code.highcharts.com/stock/modules/exporting.js"></script> <div id="container" style="height: 500px; min-width: 600px"> </div> $(function() { var seriesOptions = [], yAxisOptions = [], seriesCounter = 0, names = ['MSFT', 'AAPL', 'GOOG'], colors = Highcharts.getOptions().colors; $.each(names, function(i, name) { $.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename='+ name.toLowerCase() +'-c.json&callback=?', function(data) { seriesOptions[i] = { name: name, data: data }; // As we're loading the data asynchronously, we don't know what order it will arrive. So // we keep a counter and create the chart when all the data is loaded. seriesCounter++; if (seriesCounter == names.length) { createChart(); } }); }); // create the chart when all data is loaded function createChart() { chart = new Highcharts.StockChart({ chart: { renderTo: 'container' }, navigator: { enabled: false }, legend: { enabled: true }, rangeSelector: { selected: 4 }, scrollbar: { enabled: false }, yAxis: { labels: { formatter: function() { return (this.value > 0 ? '+' : '') + this.value + '%'; } }, plotLines: [{ value: 0, width: 2, color: 'silver' }] }, plotOptions: { series: { compare: 'percent' } }, tooltip: { pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b> ({point.change}%)<br/>', valueDecimals: 2 }, series: seriesOptions }); }
});
如果您將縮放級別從3個月縮放更改爲全部,它會起作用。 – 2013-03-05 11:34:32