如何将点击事件处理程序附加到 HighMaps 上的空数据点
How do I attach a click event handler to null data points on HighMaps
我已经尝试过更改数据(null 到一些超出范围的数字)并使用 colorAxis min 和 mas 以及 color stops 并且虽然如果它在单个地图上有效,但它不适用于我的情况做.
我真的需要能够在点击事件上挂起代码。
谢谢
https://jsfiddle.net/alex_at_pew/nbz9npyg/5/
$(function () {
// Instantiate the map
$('#container').highcharts('Map', {
plotOptions: {
map: {
events: {
mouseOver: function (e) {
console.log(e);
}
}
}
},
chart : {
borderWidth : 1
},
title : {
text : 'Nordic countries'
},
subtitle : {
text : 'Demo of drawing all areas in the map, only highlighting partial data'
},
legend: {
enabled: false
},
colorAxis: {
dataClasses: [{
from: -100,
to: 1,
color: '#C40401',
name: 'pseudonull(1s are the new null)'
}],
},
series : [{
name: 'Country',
mapData: Highcharts.maps['custom/europe'],
data: [
{
code: 'DE',
value: 1
}, {
code: 'IS',
value: 2
}, {
code: 'NO',
value: 2
}, {
code: 'SE',
value: 2
}, {
code: 'FI',
value: 2
}, {
code: 'DK',
value: 2
}
],
joinBy: ['iso-a2', 'code'],
dataLabels: {
enabled: true,
color: 'white',
formatter: function () {
if (this.point.value > 1) {
return this.point.name;
} else if(this.point.value == 1) {
return 'this is "null"';
}
}
},
tooltip: {
headerFormat: '',
pointFormat: '{point.name}'
}
}]
});
});
我不太确定您要实现的目标,但据我了解,您希望将点击事件附加到具有 NULL 值的国家/地区。
我在这里创建了这个例子:http://jsfiddle.net/on6v5vhr/
显然,如果一个国家/地区具有 NULL 值,它将无法产生点击事件,但我所做的是模拟这种行为,所以我完成了以下步骤:
处理您的数据并为所有空值赋予相同的特定值(法国为空,所以我给它的值为 -999)
{code: 'FR', value: -999}
仅显示具有值且值不同于 -999 的国家/地区的数据标签
formatter: function() {
if (this.point.value && (this.point.value !== -999)) {
return this.point.name;
}
}
仅为值不同于 -999 的国家/地区显示工具提示
tooltip: {
formatter: function() {
if (this.point.value !== -999) {
return this.point.name;
} else {
return false;
}
}
}
为所有值为 -999 的国家/地区手动设置与 NULL 颜色相同的颜色
colorAxis: {
dataClasses: [{
from: -100,
to: 1,
color: '#C40401',
name: 'pseudonull(1s are the new null)'
}, {
from: -999,
to: -999,
color: 'rgba(0,0,0,0)',
name: 'No data'
}],
}
我已经尝试过更改数据(null 到一些超出范围的数字)并使用 colorAxis min 和 mas 以及 color stops 并且虽然如果它在单个地图上有效,但它不适用于我的情况做.
我真的需要能够在点击事件上挂起代码。
谢谢
https://jsfiddle.net/alex_at_pew/nbz9npyg/5/
$(function () {
// Instantiate the map
$('#container').highcharts('Map', {
plotOptions: {
map: {
events: {
mouseOver: function (e) {
console.log(e);
}
}
}
},
chart : {
borderWidth : 1
},
title : {
text : 'Nordic countries'
},
subtitle : {
text : 'Demo of drawing all areas in the map, only highlighting partial data'
},
legend: {
enabled: false
},
colorAxis: {
dataClasses: [{
from: -100,
to: 1,
color: '#C40401',
name: 'pseudonull(1s are the new null)'
}],
},
series : [{
name: 'Country',
mapData: Highcharts.maps['custom/europe'],
data: [
{
code: 'DE',
value: 1
}, {
code: 'IS',
value: 2
}, {
code: 'NO',
value: 2
}, {
code: 'SE',
value: 2
}, {
code: 'FI',
value: 2
}, {
code: 'DK',
value: 2
}
],
joinBy: ['iso-a2', 'code'],
dataLabels: {
enabled: true,
color: 'white',
formatter: function () {
if (this.point.value > 1) {
return this.point.name;
} else if(this.point.value == 1) {
return 'this is "null"';
}
}
},
tooltip: {
headerFormat: '',
pointFormat: '{point.name}'
}
}]
});
});
我不太确定您要实现的目标,但据我了解,您希望将点击事件附加到具有 NULL 值的国家/地区。
我在这里创建了这个例子:http://jsfiddle.net/on6v5vhr/
显然,如果一个国家/地区具有 NULL 值,它将无法产生点击事件,但我所做的是模拟这种行为,所以我完成了以下步骤:
处理您的数据并为所有空值赋予相同的特定值(法国为空,所以我给它的值为 -999)
{code: 'FR', value: -999}
仅显示具有值且值不同于 -999 的国家/地区的数据标签
formatter: function() {
if (this.point.value && (this.point.value !== -999)) {
return this.point.name;
}
}
仅为值不同于 -999 的国家/地区显示工具提示
tooltip: {
formatter: function() {
if (this.point.value !== -999) {
return this.point.name;
} else {
return false;
}
}
}
为所有值为 -999 的国家/地区手动设置与 NULL 颜色相同的颜色
colorAxis: {
dataClasses: [{
from: -100,
to: 1,
color: '#C40401',
name: 'pseudonull(1s are the new null)'
}, {
from: -999,
to: -999,
color: 'rgba(0,0,0,0)',
name: 'No data'
}],
}