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