默认情况下,当我的jvectormap中有负值时,它会将country显示为黑色(当检查country元素时,我会看到下面的"fill“值:#000NaN)。我想换一下这个颜色。我该怎么做呢?
编辑:这是黑客,但我更新了国家的颜色,当它是黑色的时候,通过循环国家和检查黑色。代码如下:
try {
map = elVectorMap.vectorMap('get', 'mapObject');
map.series.regions[0].setValues(data);
} catch (e) {
var vectorMapOptions = {
map: 'world_mill_en',
backgroundColor: '#ffffff',
regionStyle: {
initial: {
fill: '#aac5e1'
}
},
series: {
regions: [{
values: data,
scale: ['#aac5e1', '#0e569f'],
normalizeFunction: 'polynomial'
}]
}
};
elVectorMap.vectorMap(vectorMapOptions);
}
// Change the color of negative value countries from black to red
elVectorMap.find('.jvectormap-element[fill="#000NaN"]').each(function(){
$(this).css('fill', '#ffcfcd');
});发布于 2017-05-13 01:38:57
使用此归一化函数而不是“多项式”或“线性”值
normalizeFunction: function(value) {
if (value < 0)
return - Math.pow(Math.abs(value), 0.2)
return Math.pow(value, 0.2);
},发布于 2015-04-08 20:11:56
问题出在normalizeFunction: 'polynomial'上。你必须用normalizeFunction: 'lineal'来改变它。但是,如果多项式归一化对您来说很重要,您始终可以生成两个序列,一个具有负值,另一个具有正值,以某种方式摆脱黑人国家问题。
示例:
series: {
regions: [{
values: countryData2,
scale: ['#d6655c', '#de837c', '#e6a29d', '#eec1bd', '#f6e0de'],
normalizeFunction: 'lineal',
legend: {
vertical: false,
title: "<span style=\"font-size:7px;\">% Dif.</span>"
}
},
{
values: countryData3,
scale: ['#e6efe6', '#b5d0b4', '#84b183', '#539152', '#227220', '#0a6308'],
normalizeFunction: 'polynomial',
legend: {
vertical: false,
title: "<span style=\"font-size:7px;\">% Dif.</span>"
}
}
]
},然而,这也产生了两个不同的传奇,但对我来说根本不是问题。
https://stackoverflow.com/questions/29495649
复制相似问题