可能吗? xAxis与Json的类别?

时间:2014-01-07 17:24:50

标签: json highcharts

Highcharts;

我正在尝试使用json在柱形图中动态更改类别。像这样......

[{y:1,"other":"other","category":"namecategory"}....]

...

  xAxis: {
                    categories: this.category,
                    maxZoom: 1
                },

有可能吗?

感谢。 :d

3 个答案:

答案 0 :(得分:1)

您可以通过json或其他方式动态加载您的类别,然后使用允许动态更改类别的setCategories

答案 1 :(得分:0)

我认为您需要将类别设置为原始js类型的数组,例如数字或字符串。

示例:

categories: ['Apples', 'Bananas', 'Oranges']

如前所述:http://api.highcharts.com/highcharts#xAxis.categories: “如果xAxis存在类别,则使用名称而不是该轴的数字。”

也许,当你提到JSON时,你在谈论对象文字吗? (因为未引用样本中的“y”键。)

实际上,您可以使用对象文字数组。但它们将在xAxis中显示为“[Object]”。

对象文字是一对围绕零个或多个名称/值的花括号 对。对象文字可以出现在表达式可以出现的任何地方:

var empty_object = {};
var stooge = {
first_name: "Jerome",
last_name: "Howard"
};

如果名称是合法的,则对象文字中属性名称周围的引号是可选的 JavaScript名称而非保留字。

也许您可以预先处理您的JSON数据,构建一个数组,以便在类别中使用。

答案 2 :(得分:0)

好吧,也许你可以尝试这样的事情:

var jsonData = [{
    "y": "1",
        "other": "other",
        "category": "namecategory1"
}, {
    "y": "2",
        "other": "another",
        "category": "namecategory2"
}];

// var jsObject = JSON.parse(jsonData);
var categories = new Array();
for (var p in jsonData) {
    categories.push(jsonData[p].category);
}
chart.xAxis[0].setCategories(categories);