加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Google图表来自Php变量

发布时间:2021-07-06 05:22:16 所属栏目:大数据 来源: https://www.jb51.cc
导读:我正在尝试从谷歌图表api制作一个图表,但我无法将我的PHP变量放入脚本:我得到一个空白页面. PHP $columns = array( array('string' = 'x'), array('number' = 'values'), array('id' = 'i1', 'type' = 'number', 'role' = 'interval'), array('id' = 'i1',

我正在尝试从谷歌图表api制作一个图表,但我无法将我的PHP变量放入脚本:我得到一个空白页面.

PHP

$columns = array(
                array('string' => 'x'),
                array('number' => 'values'),
                array('id' => 'i1', 'type' => 'number', 'role' => 'interval'), 
                array('id' => 'i1', 'type' => 'number', 'role' => 'interval'),
                array('number' => 'OtherValues'),
                array('id' => 'i1', 'type' => 'number', 'role' => 'interval'),
                array('id' => 'i1', 'type' => 'number', 'role' => 'interval') 
                 );
$test = array(
                array( 'a' => array(100, 90, 150,15,10,20)),
                array( 'b' => array(120, 95, 130,20,10,30)),
                array( 'c' => array(130, 105, 140,30,25,35)),
                array( 'd' => array( 90, 85, 95,40,35,45)),
                array( 'e' => array(70, 74, 63,50,45,55)),
                array( 'f' => array(30, 39, 22,60,55,65)),
                array( 'g' => array(100, 90, 150,15,10,20)),

    );
$table['cols'] = $columns;
$table['rows'] = $test;

Html视图

<div id="chart-lines"></div>
<script>
    google.setOnLoadCallback(drawChart);
    function drawChart() {
    var data = new google.visualization.DataTable(<?PHP echo json_encode($table) ?>);


    // The intervals data as narrow lines (useful for showing raw source
    // data)
    var options_lines = {
        title: 'Line intervals, default',
      intervals: { 'lineWidth':2, 'barWidth': 0.5 },

        legend: 'none',
    };

    var chart_lines = new google.visualization.LineChart(document.getElementById('chart-lines'));
    chart_lines.draw(data, options_lines);
}
</script>

使用Google Chrome Javascript控制台对于包含以下详细信息的每个图表,我都会收到“未捕获错误:无效类型:未定义”:

R.Osa
R.ug
(anonymous function)
nj.(anonymous function).d
Ep
drawchart

解决方法:

您的数据结构对于Visualization API的DataTable构造函数不正确.

列的正确格式是列对象数组,其中每个对象都具有类型(必需),标签,标识和p(所有可选)属性. type是一个字符串,其中包含可能的值string,number,boolean,date,datetime和timeofday. label和id是字符串. p是列属性的对象.

行的正确格式是行对象数组,其中每个对象都具有c和p属性. c是单元对象的数组. p是行属性的对象.单元格对象具有v,f和p属性,其中v是单元格的值,f是单元格的字符串格式值,p是单元格属性的对象.

所有属性对象的支持属性取决于您绘制的图表类型.

使用PHP的json_encode函数,关联数组被转换为对象,非关联数组转换为数组.您的表的适当结构应如下所示:

$columns = array(
    array('type' => 'string', 'label' => 'x'),
    array('type' => 'number', 'label' => 'values'),
    // each interval should have its own unique id,
    // but leaving them the same won't break anything for your chart as-is
    array('type' => 'number', 'id' => 'i1', 'p' => array('role' => 'interval')),
    array('type' => 'number', 'id' => 'i1', 'p' => array('role' => 'interval')),
    array('type' => 'number', 'label' => 'OtherValues'),
    array('type' => 'number', 'id' => 'i1', 'p' => array('role' => 'interval')),
    array('type' => 'number', 'id' => 'i1', 'p' => array('role' => 'interval'))
);

$test = array(
    array('c' => array(
        array('v' => 'a'),
        array('v' => 100),
        array('v' => 90),
        array('v' => 150),
        array('v' => 15),
        array('v' => 10),
        array('v' => 20)
    )),
    // etc
);
$table['cols'] = $columns;
$table['rows'] = $test;

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读