我有一个对象数组,我想在高级图表中显示.每个对象都有一个名称和一个值.
我试图通过这样做来实现这一点
var objects = objectArray[]; // objectArray being an array of the objects I want data on
var objectNames = nameArray[]; // This being an array of all the names of the objects
var objectValues = valueArray[]; // An array of all the values of the objects
series: [{
data: objects.value,
name: objects.name
}]
Run Code Online (Sandbox Code Playgroud)
这让我感到震惊.所以我尝试构建这样的系列:
series: [{
data: objectValues,
name: objectNames
}]
Run Code Online (Sandbox Code Playgroud)
这给了我数值的数据,但名称是objectNames数组中的所有名称...对于每一个数据.所以我尝试使用
series: [{
data: objectValues
},
{
data: objectNames
}]
Run Code Online (Sandbox Code Playgroud)
这导致看到了objectValues的图表,并在图例中看到了名称的另一个选项 - 这是完全不可接受的,因为有一系列标签没有意义,对吧?
所以我决定以编程方式构建一个系列,使用foreach循环然后将其传递给构造函数.但是,http : //www.highcharts.com/docs/getting-started/how-to-set-options/说这是"坏代码".
我想要的是能够将一个对象数组传递给highcharts,告诉它每个数据的'name'将是该特定对象的名称值,并且数据将被绑定到特定对象的值字段.有没有办法做到这一点?或者是highcharts认为"坏"的唯一选择?
所以我找到了解决方案.
获得数据后,我做到了
$.each(item, function (index, value) {
objects.push([value.name, value.value]);
});
Run Code Online (Sandbox Code Playgroud)
然后绑定我的系列
series: [{
data: objects,
name: 'Value Type Description'
}]
Run Code Online (Sandbox Code Playgroud)
所以我在图例中有"值类型描述",但是当我将鼠标悬停在特定点上时,我将名称作为标签,并以图表形式显示有效数据.
我在http://api.highcharts.com/highcharts#series发现如果你有一个二维数组的数组,你可以只传递一个字符串作为第一个参数,它会将它解析为该点的标签.
编辑:每个请求的示例.
所以你有两件作品series,data和name. Name不适用于data,这将是轴的名称.
data键/值对的数组也是如此.
$.each(item, function (index, value) {
objects.push([value.name, value.value]);
});
Run Code Online (Sandbox Code Playgroud)
而data: [
{[key1, value1]},
{[key2, value2]},
{[key3, value3]}
]"主要"标签将是什么 - 例如"我的数据资料".
然后,当您加载图表时,在图例中它应该显示"我的数据资料",但是当您将鼠标悬停在特定点上时,比如第一个,它将显示Key1 Value1信息.
小智 5
data: [{
name: 'Point 1',
y: 1,
test1:9,
test2:'ddaf'
}, { -------> right
name: 'Point 2',
y: 5,
test1:12,
test2:'ddddaf'
}]
Run Code Online (Sandbox Code Playgroud)
data: [{
my_name: 'Point 1',
y: 1,
test1:9,
test2:'ddaf'
}, { -------> we change 'name' to 'my_name',
my_name: 'Point 2', then the name you want to show become
y: 5, 'Slice', instead of 'Point 1','Point 2'
test1:12,
test2:'ddddaf'
}]
Run Code Online (Sandbox Code Playgroud)
data: [{
my_name: 'Point 1',
my_y: 1,
test1:9,
test2:'ddaf'
}, { -------> Now,we get nothing.
my_name: 'Point 2',
my_y: 5,
test1:12,
test2:'ddddaf'
}]
Run Code Online (Sandbox Code Playgroud)
所以,'name'和'y'是关键.
| 归档时间: |
|
| 查看次数: |
24048 次 |
| 最近记录: |