在PHP数据上创建flot

我想基于php输出创建一个flot条形图。 我设法从php输出数据,但我也想使用标签并在xaxis上显示它们。 由于某种原因,下面代码的输出无效。 标签显示,但条形和xaxis标签不显示。

PHP:

function getOverview() { $arr[] = array( 'label' => "Label 1", 'data' => array(0, 1) ); $arr[] = array( 'label' => "Label 2", 'data' => array(1, 2) ); echo json_encode($arr); } 

输出:[{“label”:“标签1”,“数据”:[0,1]},{“标签”:“标签2”,“数据”:[1,2]}]

jQuery的:

 $(document).ready(function(){ $.ajax({ url: 'http://localhost/getOverview.php', method: 'GET', dataType:"json", success: onOutboundReveived }); function onOutboundReveived(series) { var options = { series: { bars: { show: true, barWidth: .1, align: 'center' } }, xaxis: { tickSize: 1 } }; $.plot("#chart_filled_blue", series, options); } }); 

谁能帮我?

你有几个问题:

1.)系列数据需要是一个数组数组。 不只是一个数组:

 'data' => array(array(1, 2)) 

当然,这是一个系列可能有多个点(即使你有一个点)。

2.)要获取xaxis标签,您有两种选择。 一,使用类别插件。 二,手动提供刻度标签 :

 ticks: [[0, "zero"], [1.2, "one mark"], [2.4, "two marks"]] 

在你的情况下,我只使用类别插件。 您需要将最终数据修改为:

 {"label":"Label 1","data":[["Label 1",1]]} 

或者在PHP中:

 $arr[] = array( 'label' => "Label 1", 'data' => array(array("Label 1", 1)) ); 

这是一个小提琴 。

在此处输入图像描述

我认为,您的输出格式不正确。 试试这个:

 [ { label: "Label 1", data: [[0,1]] }, { label: "Label 2", data: [[1,2]] } ]