highcharts,json数据:行和列

时间:2014-01-13 12:58:21

标签: charts highcharts

可能是一个非常基本的问题:

我正在玩两个系列的highcharts,一个用line表示,另一个用column表示,数据用json加载,问题在于如何告诉highcharts一个serie应该用line表示,另一个用column类型表示,比如this

问题(对我而言)来自json模式的高级图表中的系列选项只是这样:

         }, 
            series: json
        });

在“正常模式”下,您可以设置例如:

    series: [{
**type: 'column',**
    name: 'Name',
    data: [],
},{
type: 'spline',
    name: 'Max Pax',
    data: [],
draggableY: true,
dragMinY: 0,
    dragMaxY: 200,
    .......

我错过了什么吗?

从db:

中检索数据的php代码
    $con = mysql_connect("localhost", "*******","*******");

if (!$con) {
die('Could not connect: ' . mysql_error());
}

mysql_select_db("wordpress_8", $con);

$sth = mysql_query("SELECT * FROM wp_maxpax_A where fecha='12/11/2013' ");
$rows = array();
$rows['name'] = 'MaxPax';
while($r = mysql_fetch_array($sth)) {
$rows['data'][] = $r['a1300'];
$rows['data'][] = $r['a1315'];
$rows['data'][] = $r['a1330'];
$rows['data'][] = $r['a1345'];

}

$sth = mysql_query("SELECT overhead FROM projections_sample");
$rows1 = array();
$rows1['name'] = 'Overhead';
while($rr = mysql_fetch_assoc($sth)) {
$rows1['data'][] = $rr['overhead'];
}

$result = array();
array_push($result,$rows);
array_push($result,$rows1);


print json_encode($result, JSON_NUMERIC_CHECK);

输出如下:

    [{"name":"MaxPax","data":[40,19,40,21]},{"name":"Overhead","data":                 [21990,22365,21987,22369,22558,22987,23521,23003,22756,23112,22987,22897]}]

1 个答案:

答案 0 :(得分:2)

您需要在JSON中定义此参数,或在接收后解析您的json,并设置此paraemter,然后在Highcharts中使用。

编辑: 你可以替换这行

$sth = mysql_query("SELECT * FROM wp_maxpax_A where fecha='12/11/2013' ");
$rows = array();
$rows['name'] = 'MaxPax';

$sth = mysql_query("SELECT * FROM wp_maxpax_A where fecha='12/11/2013' ");
$rows = array();
$rows['name'] = 'MaxPax';
$rows['type'] = 'line';

类似于下一个系列。 第二个解决方案是获得json后的推送类型:

$getJSON('path/to/json',function(data){


 data[0].type='column';
 data[1].type='line';

 var options = {
    // your options
    series: data
 };

 $('#container').highcharts(options);
});