【问题标题】:Highcharts: How to load data from JSON to xAxis.categories and series.data?Highcharts:如何将数据从 JSON 加载到 xAxis.categories 和 series.data?
【发布时间】:2011-07-03 16:17:57
【问题描述】:

对不起,初学者的问题。

这就是我的 JSON 的样子:

[
   ["junior college", "Primary", "secondary", "polytechnic"],
   ["4", "3", "1", "1"]
]

这是我的 HTML,

var chart; // global
var options = {
    chart: {
        renderTo: 'container',
        defaultSeriesType: 'bar'
    },
    title:{
        text: 'No. Schools for different levels'
    },
    xAxis:{
        title:'Education Level',
        categories:[]
    },
    yAxis:{
        title:{
            text:'No. Of Schools'
        }
    },
    series:[{
        name: "No. Schools",
        data: []
    }]
};

$.getJSON('loadData.php', function(JSONresult) {
    yData = options.series[0].data; //Array to store data for y column
    xData = options.xAxis.categories; //Array to store data for x column

    xDataObj = JSONresult[0];
    yDataObj = JSONresult[1];

    for(var key in xDataObj){
        xData.push(xDataObj[key]);
    }

    for(var key in yDataObj){
        yData.push(parseFloat(yDataObj[key]));
    }

我尝试执行代码,firebug 没有显示错误但图表从未显示。你能帮忙指出我哪里出错了吗?

【问题讨论】:

  • 您的代码中是否缺少某些内容?看起来您从未真正创建图表的新实例。
  • @NT3RP 抱歉,我忘了把实例化代码放在这里,我确实用chart = new Highcharts.Chart(options); 对其进行了初始化,但图表从未出现。谢谢!

标签: javascript json highcharts


【解决方案1】:

我找到了解决办法。

在我的 php 脚本中,我必须将整数转换为系列数据,

(int)$variable;

所以输出的 JSON 是

[4, 3, 1, 1]

图表将被渲染。

谢谢大家:)

【讨论】:

  • 很高兴您找到了解决方案;请将您的解决方案标记为已接受,以便其他人知道什么对您有用:)
【解决方案2】:

你需要做这样的事情来实例化和渲染图表:

chart = new Highcharts.Chart(options);

这可以在您的 getJSON 响应函数结束时进行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多