我在highcharts网站上使用了演示中的一个示例,唯一的修改是:
$(function () {
// Instanciate the map
$('#container').highcharts('Map', {
chart: {
spacingBottom: 20
},
title : {
text : 'Europe time zones'
},
legend: {
enabled: true
},
plotOptions: {
map: {
//allAreas: false,
joinBy: ['iso-a2', 'code'],
dataLabels: {
enabled: true,
color: 'white',
formatter: function () {
if (this.point.properties && this.point.properties.labelrank.toString() < 5) {
return this.point.properties['iso-a2'];
}
},
format: null,
style: {
fontWeight: 'bold'
}
},
mapData: Highcharts.maps['custom/world'],
tooltip: {
headerFormat: '',
pointFormat: '{point.name}: <b>{series.name}</b>'
}
}
},
series : [{
name: 'UTC',
id: 'UTC',
data: $.map(['IE', 'IS', 'GB', 'PT'], function (code) {
return { code: code };
})
}, {
name: 'UTC + 1',
data: $.map(['NO', 'SE', 'DK', 'DE', 'NL', 'BE', 'LU', 'ES', 'FR', 'PL', 'CZ', 'AT', 'CH', 'LI', 'SK', 'HU',
'SI', 'IT', 'SM', 'HR', 'BA', 'YF', 'ME', 'AL', 'MK'], function (code) {
return { code: code };
})
}, {
name: 'UTC + 2',
data: $.map(['FI', 'EE', 'LV', 'LT', 'BY', 'UA', 'MD', 'RO', 'BG', 'GR', 'TR', 'CY'], function (code) {
return { code: code };
})
}, {
name: 'UTC + 3',
data: $.map(['RU'], function (code) {
return { code: code };
})
}]
});
});
&#13;
JSFiddle中的代码 为什么只有单个系列可见?
答案 0 :(得分:1)
导致此问题的一行是://allAreas: false
。
这是解释以及如何解决 (extract from the Highcharts support forum)
根据API,将
allAreas
设置为true
将全部 区域也是没有值的区域(作为空值)。另一个 选项是nullColor
,默认情况下是灰色阴影和设置 空值使用的颜色。因此,如果您将
allAreas
设置为true
,那么每个系列都会绘制 所有区域和具有空值的区域将被填充为灰色( 的nullColor
强>)。因为后面的系列有更高的z-index
,所以这些都是 在另一个系列的顶部,导致灰色的形状覆盖 在它下面的形状。如果您想将
allAreas
设置为true
,但仍然可以看到 不同系列,您必须将nullColor
设置为透明:的
rgba(0,0,0,0)
强> 的
<强> Working JSFiddle here 强>