Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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
Javascript 在Google Charts draw()函数中访问数据属性_Javascript_Google Chrome_Charts_Google Visualization - Fatal编程技术网

Javascript 在Google Charts draw()函数中访问数据属性

Javascript 在Google Charts draw()函数中访问数据属性,javascript,google-chrome,charts,google-visualization,Javascript,Google Chrome,Charts,Google Visualization,我试图在drawVisualization()函数之外访问数据变量和addRow()。 我经常遇到的问题是,如果我的数据/addRow位于draw函数之外,我的控制台中出现错误“无法读取未定义的属性'DataTable'或其“无法读取未定义的属性'data'” 不确定这对谷歌API是否可行。但请分享你的想法。检查下面的代码 var data; var chart; function drawVisualization() { data = new google.visualizati

我试图在drawVisualization()函数之外访问数据变量和addRow()。 我经常遇到的问题是,如果我的数据/addRow位于draw函数之外,我的控制台中出现错误“无法读取未定义的属性'DataTable'或其“无法读取未定义的属性'data'” 不确定这对谷歌API是否可行。但请分享你的想法。检查下面的代码

var data;
var chart;

function drawVisualization() {

    data = new google.visualization.DataTable();
    data.addColumn('string', 'data');
    data.addColumn('number', 'date');

    data.addRow([timeArr[i], valueArr[i]]);


    //console.log(valueArr);
    // use a DataView to 0-out all the values in the data set for the initial draw
    var view = new google.visualization.DataView(data);


    // Create and draw the plot
    chart = new google.visualization.LineChart(document.getElementById('visualization'));


    var options = {
        title:" ",
        width: 960,
        height: 460,
        bar: { groupWidth: "40%" },
        legend: { position: "bottom" },
        animation: {"startup": true},
        curveType: 'function',
        lineWidth: 3,
        backgroundColor: '#f9f9f9',
        colors: ['red'],
        tooltip: {
            textStyle: {
              color: 'red',
              italic: true
            },
            showColorCode: true
        },
        animation: {
            startup: true,
            easing: 'inAndOut',
            //duration: 500
        },
        vAxis: {
            title: '',
            gridlines: {
              count: 8,
              color: '#999'
            }
            /*minValue: 1.3,
            maxValue: 1.4*/
        },
        hAxis: {
          title: 'Time Stamp'
        },
    };


    chart.draw(view, options);

}
1)定义
数据
绘图可视化

var data;

function drawVisualization() {
  ...

2)
数据中删除
var
drawVisualization中的

var data;

function drawVisualization() {
  data = new google.visualization.DataTable();  // <-- remove var declaration
  data.addColumn('string', 'data');
  data.addColumn('number', 'date');

谢谢白帽子!是的,draw函数中的变量是可访问的。但是方法呢?如data.addRow/addColumn和chart.draw。如何借用它们?请参见编辑,第一次调用
drawVisualization
后,您应该可以访问任何方法…我不确定我是否理解您在这里尝试的操作。我想知道是否可以在drawVisualization()函数之外调用data.addRow方法。如果
数据
是在
drawVisualization
之外定义的,并且
drawVisualization
至少被调用过一次,并且
google.charts.load中的
回调
已启动,则我尝试了此操作,那么你不应该收到错误…请检查我刚才编辑的代码。我有数据和图表以外的绘图功能。我还加载了google.charts.load。但我得到这个错误:“无法读取未定义的属性'DataTable'。
var data;
var chart;

function drawVisualization() {
  data = new google.visualization.DataTable();  // <-- remove var declaration
  data.addColumn('string', 'data');
  data.addColumn('number', 'date');

  chart = new google.visualization.LineChart(document.getElementById('visualization'));