У меня есть диаграмма пирамиды населения с каждым полом в виде ряда.Пользователю нужна возможность изменять типы диаграмм серии.По умолчанию бар, и они хотят иметь возможность перейти на линию.Я создал функцию, которая изменит тип диаграммы.Это работает, но серия, которая «идет влево» (или отрицательное значение) имеет действительно странное изменение значения / масштаба.Если я скрываю правую серию, то значение / шкала левой серии исправляется.Покажите правильную серию, и график снова будет выглядеть.Если я вернусь к серии баров, то серия будет выглядеть корректно.
Мой код для изменения типа серии диаграмм:
var mainGraphFormatType = $('#ddlGraphFormatDropDown');
mainGraphFormatType.change(function() {
var chartM = $('#container').highcharts();
if ($(this).val() != 'null') {
var selType = $(this).val().toLowerCase();
if (selType == 'scatter') {
selType = 'line';
}
changeType(chartM, selType);
}
});
function changeType(chart, newType) {
newType = newType.toLowerCase();
var serie = chart.series;
for (i = 0; i < chart.series.length; i++) {
var item = serie[i];
item.update({
type: newType
});
var isLegendOn = chart.legend.options.enabled;
if (isLegendOn) {
if (!item.showInLegend) {
item.update({
showInLegend: true
});
item.options.showInLegend = true;
chart.legend.renderItem(item);
chart.legend.render();
}
}
}
changeChartTypeSingSeries(chart);
}
function changeChartTypeSingSeries(chart) {
var serie = chart.series;
for (i = 0; i < chart.series.length; i++) {
var item = serie[i];
if (!item.visible) {
item.hide();
}
}
}
Я повторил эту проблему с демо-пирамидальной диаграммы старших диаграмм здесь .