2014-01-07 23 views
0

Highcharts;这可能吗? json的xAxis类别?

我想用json在列图表中动态地改变类别。事情是这样的......

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

..

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

这可能吗?

谢谢。 :D

+0

您需要发布一些代码。您可以将json解析为javascript对象,更改要修改的参数并重新渲染图表。 –

+1

maxZoom是depracated,所以我建议使用afterSetExtremes和检查范围。 –

+0

我在api中看到,然后用minRange替换。 – luckasx

回答

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); 
0

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

实施例:

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

由于它是这里提到::http://api.highcharts.com/highcharts#xAxis.categories“如果类别是存在用于x轴,名称来代替该轴数字”。

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

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

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

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

围绕一个属性的名称引号中的对象的文字是可选的,如果名称将是一个合法的JavaScript 名称而不是保留字。

也许你可以预处理你的JSON数据,构建一个数组用于类别。

+0

这种方式我已经知道了。我想要的是如果可能的话,用一个json文件“填充”图表数据和类别。 – luckasx

+0

你打算使用包含在你的JSON文件中的特定“键/值”来显示在xAxis中吗?给我们一个你的JSON文件的样本。 –

+0

现在y引用。 '[{“”y“”:1,“other”:“other”,“category”:“namecategory”}]' – luckasx

1

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

+0

见上面的评论。 – luckasx