Извините, если этот вопрос задан раньше, но я не смог найти аналогичный вопрос, связанный с моей проблемой.Duplicate Series в легенде при экспорте
Проблема, которую я испытываю, заключается в том, что при экспорте в PNG, JPG и т. Д. Серия удваивается. Так что, если у меня на экране есть четыре серии, графика, когда дело доходит до экспорта, в легенде будет восемь серий.
Я думаю, что проблема связана с событием «load» диаграммы, выполняемой в последующие моменты времени при экспорте.
$(function() {
Highcharts.setOptions({
global: {
useUTC: false
}
});
function fnFetchData(chart) {
// Just imagine an AJAX request has just been done to get a JSON response
// JSONData = $.getJSON('/FetchSales');
var JSONData
JSONData = {
seriesName: 'Sales 2013',
data: [(Math.random() * 100) + 1, (Math.random() * 100) + 1,
(Math.random() * 100) + 1, (Math.random() * 100) + 1,
(Math.random() * 100) + 1, (Math.random() * 100) + 1,
(Math.random() * 100) + 1, (Math.random() * 100) + 1,
(Math.random() * 100) + 1, (Math.random() * 100) + 1,
(Math.random() * 100) + 1, (Math.random() * 100) + 1,
(Math.random() * 100) + 1]
};
//alert('About to load the chart Data');
chart.addSeries({
name: JSONData.seriesName,
data: JSONData.data,
type: 'spline'
}, true);
chart.redraw(true);
};
// Create the chart
$('#container').highcharts({
chart: {
events: {
load: function() {
fnFetchData(this);
}
}
},
title: {
text: 'Chart Data from load Event'
},
exporting: {
enabled: true,
scale: 2,
filename: 'ChartWithDoubleupSeries'
},
spline: {
animation: false
},
series: []
});
});
я могу воспроизвести проблему, вот пример:
Я продолжаю думать, что это может быть ошибка, что событие «нагрузка» в настоящее время выполняется при экспорте, если это не является стандартное поведение, и мне нужно включить и дополнительный вариант.
Версии детали:
- Highstock JS v1.3.1 (2013-04-09)
- Highstock JS v1.3.1 (2013-04-09) Экспорт модуль
Спасибо за работу, вокруг решения. В настоящее время то, что сделано в качестве альтернативного решения, состояло в том, чтобы хранить имена серий в массиве. Когда событие загрузки запущено, я проверяю имя серии, чтобы узнать, существует ли она в массиве. Если это так, не вызывайте метод addSeries. После небольшого дополнительного исследования для долгосрочного решения я добавил options.chart.events = null; –