正在将 JSON 加载到 Google 面积图中
Loading JSON into Google Area Chart
我正在尝试将 json 数据加载到 Google 图表中,就像他们所做的那样 here。为了简化开始,我在 html 文件中定义了 json。我可以让示例正常工作(这是一个饼图),但是当我尝试使用面积图时它不起作用。这是我正在做的事情:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var jsonData =
{
cols: [{id: 'A', label: 'NEW A', type: 'string'},
{id: 'B', label: 'B-label', type: 'number'},
{id: 'C', label: 'C-label', type: 'date'}
],
rows: [{c:[{v: 'a'},
{v: 1.0, f: 'One'},
{v: new Date(2008, 1, 28, 0, 31, 26), f: '2/28/08 12:31 AM'}
]},
{c:[{v: 'b'},
{v: 2.0, f: 'Two'},
{v: new Date(2008, 2, 30, 0, 31, 26), f: '3/30/08 12:31 AM'}
]},
{c:[{v: 'c'},
{v: 3.0, f: 'Three'},
{v: new Date(2008, 3, 30, 0, 31, 26), f: '4/30/08 12:31 AM'}
]}
]
};
var data = google.visualization.DataTable(jsonData);
var options = {
title: 'Company Performance',
hAxis: {title: 'Year', titleTextStyle: {color: '#333'}},
vAxis: {minValue: 0}
};
var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
</script>
<div id="chart_div" style="width:900; height:500"></div>
上面的代码没有绘制任何东西。我确定这个问题真的很琐碎而且很愚蠢,但是谁能告诉我它是什么?
非常感谢,
亚历克斯
第一个错误是未捕获错误:您调用 google.visualization.DataTable() 时没有使用 "new" 关键字。之后,检查数据。我不相信您可以将日期和数字组合到面积图中,它需要数字。
我插入了一个示例并更改为数字并且它有效:jsfiddle。net/L1tct3Lv/25
var jsonData =
{
cols: [{id: 'a', label: 'NEW A', type: 'string'},
{id: 'b', label: 'B-label', type: 'number'},
{id: 'c', label: 'C-label', type: 'number'}
],
rows: [{c:[{v: 'a'},
{v: 1.0, f: 'One'},
{v: 100}
]},
{c:[{v: 'b'},
{v: 2.0, f: 'Two'},
{v: 200}
]},
{c:[{v: 'c'},
{v: 3.0, f: 'Three'},
{v: 300}
]}
]
};
var data = new google.visualization.DataTable(jsonData);
我正在尝试将 json 数据加载到 Google 图表中,就像他们所做的那样 here。为了简化开始,我在 html 文件中定义了 json。我可以让示例正常工作(这是一个饼图),但是当我尝试使用面积图时它不起作用。这是我正在做的事情:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var jsonData =
{
cols: [{id: 'A', label: 'NEW A', type: 'string'},
{id: 'B', label: 'B-label', type: 'number'},
{id: 'C', label: 'C-label', type: 'date'}
],
rows: [{c:[{v: 'a'},
{v: 1.0, f: 'One'},
{v: new Date(2008, 1, 28, 0, 31, 26), f: '2/28/08 12:31 AM'}
]},
{c:[{v: 'b'},
{v: 2.0, f: 'Two'},
{v: new Date(2008, 2, 30, 0, 31, 26), f: '3/30/08 12:31 AM'}
]},
{c:[{v: 'c'},
{v: 3.0, f: 'Three'},
{v: new Date(2008, 3, 30, 0, 31, 26), f: '4/30/08 12:31 AM'}
]}
]
};
var data = google.visualization.DataTable(jsonData);
var options = {
title: 'Company Performance',
hAxis: {title: 'Year', titleTextStyle: {color: '#333'}},
vAxis: {minValue: 0}
};
var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
</script>
<div id="chart_div" style="width:900; height:500"></div>
上面的代码没有绘制任何东西。我确定这个问题真的很琐碎而且很愚蠢,但是谁能告诉我它是什么?
非常感谢, 亚历克斯
第一个错误是未捕获错误:您调用 google.visualization.DataTable() 时没有使用 "new" 关键字。之后,检查数据。我不相信您可以将日期和数字组合到面积图中,它需要数字。
我插入了一个示例并更改为数字并且它有效:jsfiddle。net/L1tct3Lv/25
var jsonData =
{
cols: [{id: 'a', label: 'NEW A', type: 'string'},
{id: 'b', label: 'B-label', type: 'number'},
{id: 'c', label: 'C-label', type: 'number'}
],
rows: [{c:[{v: 'a'},
{v: 1.0, f: 'One'},
{v: 100}
]},
{c:[{v: 'b'},
{v: 2.0, f: 'Two'},
{v: 200}
]},
{c:[{v: 'c'},
{v: 3.0, f: 'Three'},
{v: 300}
]}
]
};
var data = new google.visualization.DataTable(jsonData);