Вы можете создать две функции, которые будут отвечать за создание диаграмм другого типа, и вызывать их в нужном событии:
function mapChart() {
Highcharts.mapChart('container', {
chart: {
map: 'countries/kw/kw-all'
},
title: {
text: 'Highmaps basic demo'
},
subtitle: {
text: 'Source map: <a href="http://code.highcharts.com/mapdata/countries/kw/kw-all.js">Kuwait</a>'
},
mapNavigation: {
enabled: true,
buttonOptions: {
verticalAlign: 'bottom'
}
},
colorAxis: {
min: 0
},
series: [{
data: data,
name: 'Random data',
point: {
events: {
click: function() {
columnChart(this.name);
document.getElementById("back").style.display = "block"
}
}
},
states: {
hover: {
color: '#BADA55'
}
},
dataLabels: {
enabled: true,
format: '{point.name}'
}
}]
});
document.getElementById("back").style.display = "none";
}
function columnChart(name) {
var data = [1, 2, 3];
if (name === "Al Jahrah") {
data = [2, 2, 2];
}
Highcharts.chart('container', {
title: {
text: name
},
series: [{
type: 'column',
data: data
}]
});
}
mapChart();
Демонстрация в реальном времени: https://jsfiddle.net/BlackLabel/bnsjgt4z/
Ниже вы можете найти другие решения с разверткой от карты к диаграмме:
https://www.highcharts.com/maps/demo/rich-info
https://www.highcharts.com/maps/demo/data-class-two-ranges