Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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 谷歌可视化API-多折线图_Php_Google Visualization_Linechart - Fatal编程技术网

Php 谷歌可视化API-多折线图

Php 谷歌可视化API-多折线图,php,google-visualization,linechart,Php,Google Visualization,Linechart,我从数据库中提取记录后创建了一个数组。该数组类似于: // $xyz array Array ( [f30] => Array ( [December 2012] => 71 [November 2012] => 70 [October 2012] => 66 ) [f32] => Array (

我从数据库中提取记录后创建了一个数组。该数组类似于:

// $xyz array
Array
(
    [f30] => Array
        (
            [December 2012] => 71
            [November 2012] => 70
            [October 2012] => 66
        )    

    [f32] => Array
        (
            [December 2012] => 85
            [November 2012] => 83
            [October 2012] => 81
        )
)
如果是单线图,我可以毫不费力地画出来。然而,当我尝试绘制多折线图时,我遇到了很多问题。下面是我试图绘制数据的代码:

PHP JS

load('visualization','1',{'packages':['corechart']});
setOnLoadCallback(drawChart);
函数绘图图(){
var data=new google.visualization.DataTable();
变量选项={
标题:“一些标题”,
is3D:'正确',
宽度:800,
身高:600
};            
var chart=newgoogle.visualization.LineChart(document.getElementById('divID');
图表绘制(数据、选项);
}
我通过改变
$temp
$rows
$table['rows']
数组的位置尝试了各种排列和组合,但我似乎无法在一个图形中绘制两条线。我可能弄乱了阵列的位置

我能得到的最接近的结果如下:

但我的预期产出是这样的


f30
f31
取代
销售
费用
10月
11月
12月
取代
2004年
2005年
2006年
2007年
我自己想出来了。天哪!这真是一种解脱。我只需要有一个这样格式的数组:

Array
(
    [December 2012] => Array
        (
            [0] => 71
            [1] => 85
        )

    [November 2012] => Array
        (
            [0] => 70
            [1] => 83                
        )

    [October 2012] => Array
        (
            [0] => 66
            [1] => 81
        )

)

剩下的是
foreach
循环中的一个小修改,瞧!完成了。

您还可以为每个f[30]和f[31]创建一个数据表 然后呢


这基本上是将两个图表从关键列连接起来,即

您想要一个包含3列的表:a列有日期(以日期格式,例如
新日期(2012,9,1)
,因此它们的顺序正确)。您可以按原样使用字符串,但需要注意顺序。B列具有F30的值。列C具有F31的值。操纵您的数据,以这种方式结束,它将工作。我不确定您是如何将数组传递到datatable的,因此,除非您分享如何将其传递到google charts API,否则我无法更具体地说明。这就是@jmac的问题,我似乎不知道如何从数组中生成3列。您是如何创建数组的?您从数据库中获得的数据是什么?你真的没有办法把数据换成不同的格式吗?您可以在一个数组中创建一个数组,然后在每个数据点的子数组中循环(例如,2012年11月,然后是[70,83])。但是,没有办法用当前提供的信息给出具体的解决方案(内容太广泛,没有明确的意义,哪些事情你可以/不能更改)Ok。让我们忘掉数据库吧。假设我对值进行了硬编码,就像
$xyz
数组包含的一样。我需要以什么形式转换
$xyz
来绘制多折线图?我已经浏览了
谷歌代码游乐场
,但它没有包含使用PHP数组的示例。@jmac不用担心。我想出来了。谢谢你的时间
<script type="text/javascript">

    google.load('visualization', '1', {'packages':['corechart']});    
    google.setOnLoadCallback(drawChart);
    function drawChart() {
      var data = new google.visualization.DataTable(<?=$jsonTable?>);
      var options = {
           title: 'Some title',
          is3D: 'true',
          width: 800,
          height: 600
        };            
      var chart = new google.visualization.LineChart(document.getElementById('divID'));
      chart.draw(data, options);
    }
    </script>
Array
(
    [December 2012] => Array
        (
            [0] => 71
            [1] => 85
        )

    [November 2012] => Array
        (
            [0] => 70
            [1] => 83                
        )

    [October 2012] => Array
        (
            [0] => 66
            [1] => 81
        )

)