Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用flot绘制图形,不接受数据类型_Php_Jquery_Graph_Flot - Fatal编程技术网

Php 使用flot绘制图形,不接受数据类型

Php 使用flot绘制图形,不接受数据类型,php,jquery,graph,flot,Php,Jquery,Graph,Flot,我试图用flot画一张图,但它坚持不画。绘图将是时间与值的对比,因此,日期对象将转换为整数时间戳,并使用值进行映射。以下是PHP代码: $row_temp_data=array(); $row_time_data=array(); foreach($restfulData['rows'] as $row){ array_push($row_time_data, strtotime($row['c']['0']['v'])*1000); array_push($row_temp_d

我试图用flot画一张图,但它坚持不画。绘图将是时间与值的对比,因此,日期对象将转换为整数时间戳,并使用值进行映射。以下是PHP代码:

$row_temp_data=array();
$row_time_data=array();
foreach($restfulData['rows'] as $row){
    array_push($row_time_data, strtotime($row['c']['0']['v'])*1000);
    array_push($row_temp_data, $row['c']['1']['v']);                
} 

$return_array = array_map("self::functionMakePair", $row_time_data, $row_temp_data);
// following render is for testing
$this->render('index', array('return_array'=>json_encode($return_array)));
创建该对的函数是:

function functionMakePair($pair_1, $pair_2)
{
    return (array($pair_1 => $pair_2));
}
这段代码在客户端为我提供了以下示例数据结构,即json_encode之后的$return_数组:

[{"1375937439000":29},{"1375937472000":29},{"1375937506000":29},{"1375937539000":29},{"1375937573000":29}]
这里也有相应的jquery代码段(不过这里没有什么值得怀疑的):


问题是如何以一种好的方式将数据转换成这种格式?

实际上,您不需要转换数据格式以适应图表

如果您使用D3,您可以轻松地创建自定义数据格式的匿名函数

您可以使用D3,并基于svg绘制图形和悬停线,您还可以添加其他图形组件进行交互,如滑块以选择要放大的子间隔、更改标签等

以此为例,开发:


(您可以拖动黄色条,然后单击图例;对于源代码,请单击github上的fork me)

确定,找到它。。像往常一样,代码中隐藏了一些细节

作为将来的参考,
functionMakePair
函数应该是这样的(注意=>改为逗号):


这样,数据格式将采用所需的数组格式。

当然,我知道使用了一些其他插件,但问题不仅包括flot,还包括以该格式传递数据以满足未来的需求。无论如何,谢谢你。。
$(function () {
    //jQuery Flot Chart     

    var plot = $.plot($("#statsChart"),
        [ { data: <?php echo $return_array?>, label: "Temperature" }], {
            series: {
                lines: { show: true,
                        lineWidth: 1,
                        fill: true, 
                        fillColor: { colors: [ { opacity: 0.1 }, { opacity: 0.13 } ] }
                     },
                points: { show: true, 
                         lineWidth: 2,
                         radius: 3
                     },
                shadowSize: 0,
                stack: true
            },
            grid: { hoverable: true, 
                   clickable: true, 
                   tickColor: "#f9f9f9",
                   borderWidth: 0
                },
            legend: {
                    // show: false
                    labelBoxBorderColor: "#fff"
                },  
            colors: ["#a7b5c5", "#30a0eb"],
            xaxis: {
                mode: "time",
                font: {
                    size: 12,
                    family: "Open Sans, Arial",
                    variant: "small-caps",
                    color: "#697695"
                }
            },
            yaxis: {
                font: {size:12, color: "#9da3a9"}
            }
         });
});
[["1375937439000",29],["1375937472000",29],["1375937506000",29],["1375937539000",29],["1375937573000",29]]
function functionMakePair($pair_1, $pair_2)
{
    return (array($pair_1, $pair_2));
}