Вы также можете сделать это в два этапа:
remove = [k for k in mydict if k == val]
for k in remove: del mydict[k]
Мой любимый подход обычно состоит в том, чтобы просто создать новый dict:
# Python 2.7 and 3.x
mydict = { k:v for k,v in mydict.items() if k!=val }
# before Python 2.7
mydict = dict((k,v) for k,v in mydict.iteritems() if k!=val)
Это можно решить, выдвинув новые координаты для Испании. http://bastionstudio.co.za/test/spain-no-canary-islands.html
console.log(Highcharts.maps['custom/world'].features);
Highcharts.maps['custom/world'].features.push({
"type":"Feature",
"id":"ES",
"properties": {
"hc-group":"admin0",
"hc-middle-x":0.76,
"hc-middle-y":0.27,
"hc-key":"es",
"hc-a2":"ES","name":"Spain",
"labelrank":"2",
"country-abbrev":"Sp.",
"subregion":"Southern Europe",
"region-wb":"Europe & Central Asia",
"iso-a3":"ESP","iso-a2":"ES","woe-id":"23424950",
"continent":"Europe"
},
"geometry":{
"type":"MultiPolygon",
"coordinates":[
[
[
[4045, 7594],
[4021, 7599],
[4011, 7621],
[3984, 7629],
[3997, 7692],
[3998, 7762],
[4020, 7781],
[4009, 7795],
[3944, 7795],
[3930, 7838],
[3969, 7860],
[3988, 7852],
[4098, 7851],
[4151, 7846],
[4203, 7821],
[4246, 7818],
[4249, 7812],
[4255, 7814],
[4262, 7812],
[4262, 7813],
[4262, 7814],
[4263, 7812],
[4263, 7812],
[4279, 7808],
[4298, 7812],
[4300, 7795],
[4265, 7771],
[4233, 7763],
[4194, 7709],
[4211, 7683],
[4189, 7669],
[4183, 7644],
[4154, 7635],
[4143, 7615],
[4072, 7613],
[4046, 7594],
[4045, 7594]
]
]
]
}
});
Вы также можете создать собственную карту: https://www.highcharts.com/docs/maps/custom-geojson-maps
или удалить Канарские острова из графического изображения точки. , но тогда они полностью исчезнут с карты:
chart: {
events: {
load: function() {
var point = this.series[0].points[0],
pathArr = point.graphic.attr('d').split('M');
pathArr.shift();
point.graphic.attr({
'd': 'M' + pathArr[3]
});
}
}
}
Демонстрационная версия: http://jsfiddle.net/BlackLabel/6oa08vyd/
API: [ 113] https://api.highcharts.com/class-reference/Highcharts.SVGElement#attr