可以在 Highmaps 中使用除 "value" 以外的其他列名称吗?
Can another column name than "value" be used in Highmaps?
我有一个包含多列的 JSON 文件,我想根据用户的选择,将其中任何一个显示为相对开放的地图。现在,除了 "value",我看不到任何使用其他列名称在 Highmaps 中显示的示例。是这样吗?或者有什么方法可以在 Javascript 代码中命名 Highmaps 应该用于显示数据的列?
也就是说,列名是(例如)这些:
LC_Ctry_Limit,LC_Capita_Limit,LC_Ctry_Footprint,LC_Capita_Footprint,LC_Score
现在,为了能够显示来自 LC_Score 的数据,我需要将列(硬编码到 JSON 文件中)重命名为 "value" .因此:
LC_Ctry_Limit,LC_Capita_Limit,LC_Ctry_Footprint,LC_Capita_Footprint,value
但是,如果用户想要显示另一列呢?我是否需要为每一列创建五个不同的 JSON 文件,然后将其命名为 "value"?这对我来说似乎相当不灵活。
我的 Highmaps 代码看起来像这样,首先加载一个 GeoJSON,然后加载一个 JSON 文件,我猜应该是关于列名说明符的:
series : [
{
data : data,
mapData: geojson,
joinBy: ['Country_40','Country'],
name: 'LC_Score',
borderWidth: 0.2,
COLUMN-TO-BE-USED: lorem
}]
感谢任何提示!
您可以在设置图表 options/configuration 中的数据之前设置 value
属性 的值。此选择可以基于传递给函数的值,该函数将 return 准备好配置数组。
示例:http://jsfiddle.net/bmv0y8dn/
var columnToBeUsed = 'lorem';
$('#container').highcharts('Map', {
series: [{
data: (function (columnToBeUsed) {
var len = data.length,
tab = [];
for (var i = 0; i < len; i++) {
data[i].value = data[i][columnToBeUsed];
}
return data;
})(columnToBeUsed),
...
可以使用 Series.setData 动态更改系列数据,因此您可以更改 value
的值并使用新数据调用 setData() 以进行动态数据更改。
我有一个包含多列的 JSON 文件,我想根据用户的选择,将其中任何一个显示为相对开放的地图。现在,除了 "value",我看不到任何使用其他列名称在 Highmaps 中显示的示例。是这样吗?或者有什么方法可以在 Javascript 代码中命名 Highmaps 应该用于显示数据的列?
也就是说,列名是(例如)这些:
LC_Ctry_Limit,LC_Capita_Limit,LC_Ctry_Footprint,LC_Capita_Footprint,LC_Score
现在,为了能够显示来自 LC_Score 的数据,我需要将列(硬编码到 JSON 文件中)重命名为 "value" .因此:
LC_Ctry_Limit,LC_Capita_Limit,LC_Ctry_Footprint,LC_Capita_Footprint,value
但是,如果用户想要显示另一列呢?我是否需要为每一列创建五个不同的 JSON 文件,然后将其命名为 "value"?这对我来说似乎相当不灵活。
我的 Highmaps 代码看起来像这样,首先加载一个 GeoJSON,然后加载一个 JSON 文件,我猜应该是关于列名说明符的:
series : [
{
data : data,
mapData: geojson,
joinBy: ['Country_40','Country'],
name: 'LC_Score',
borderWidth: 0.2,
COLUMN-TO-BE-USED: lorem
}]
感谢任何提示!
您可以在设置图表 options/configuration 中的数据之前设置 value
属性 的值。此选择可以基于传递给函数的值,该函数将 return 准备好配置数组。
示例:http://jsfiddle.net/bmv0y8dn/
var columnToBeUsed = 'lorem';
$('#container').highcharts('Map', {
series: [{
data: (function (columnToBeUsed) {
var len = data.length,
tab = [];
for (var i = 0; i < len; i++) {
data[i].value = data[i][columnToBeUsed];
}
return data;
})(columnToBeUsed),
...
可以使用 Series.setData 动态更改系列数据,因此您可以更改 value
的值并使用新数据调用 setData() 以进行动态数据更改。