页面上有多个谷歌图表
Multiple Google charts on page
本文关键字:谷歌 更新时间:2024-01-16
我目前正试图在我的asp.net MVC网站上显示3个谷歌图表。
我希望这些图表紧挨着(在同一行上),但目前我无法使它们一个在另一个下面(在同一栏上),我不知道为什么。。。
以下代码仅显示一个图表(第一个):
<div id="chart_divb">
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', { packages: ['corechart'] });
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Mois');
data.addColumn('number', 'Interventions');
var data1=@Html.Raw(Json.Encode(ViewBag.chartToday));
$.each(data1,function(index,value){
data.addRows([[value.Item1, value.Item2]]);
});
var options = {'title':'Total Interventions on @(DateTime.Now.Year-2)','width':400,'height':300,legend:{position:'none'}};
var chart = new google.visualization.ColumnChart(document.getElementById('chart_divb'));
chart.draw(data,options);
}
</script>
</div>
<div id="chart_diva">
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', { packages: ['corechart'] });
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Mois');
data.addColumn('number', 'Interventions');
var data1=@Html.Raw(Json.Encode(ViewBag.chartToday))
$.each(data1,function(index,value){
data.addRows([[value.Item1, value.Item2]]);
});
var options = {'title':'Total Interventions on @(DateTime.Now.Year-1)','width':400,'height':300,legend:{position:'none'}};
var chart = new google.visualization.ColumnChart(document.getElementById('chart_diva'));
chart.draw(data,options);
}
</script>
</div>
<div id="chart_div">
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', { packages: ['corechart'] });
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Mois');
data.addColumn('number', 'Interventions');
var data1=@Html.Raw(Json.Encode(ViewBag.chartToday))
$.each(data1,function(index,value){
data.addRows([[value.Item1, value.Item2]]);
});
var options = {'title':'Total Interventions on @DateTime.Now.Year','width':400,'height':300,legend:{position:'none'}};
var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
chart.draw(data,options);
}
</script>
</div>
每个调用都在工作(我可以在源代码中看到),但它们只是没有显示出来。
希望有人能帮助我,并提前感谢你的帮助!
正如@DLeh在前面的回答中提到的,您应该遵循Google图表注册图表库的指导原则(https://developers.google.com/chart/interactive/docs/basic_load_libs)。您只需要注册脚本并一次性加载图表。
至于将3个图表水平显示在一起,有多种方法可以通过CSS实现,但我只是使用float:left作为一个快速示例。
<html>
<head>
<title></title>
<meta charset="utf-8"/>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {packages: ['corechart']});
</script>
</head>
<body>
<div>
<div id="chart_div1" style="float: left;">
<script type="text/javascript">
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Mois');
data.addColumn('number', 'Interventions');
var data1 = @Html.Raw(Json.Encode(ViewBag.chartToday));
$.each(data1, function(index, value) {
data.addRows([[value.Item1, value.Item2]]);
});
var options = { 'title': 'Total Interventions on 1 @(DateTime.Now.Year - 2)', 'width': 400, 'height': 300, legend: { position: 'none' } };
var chart = new google.visualization.ColumnChart(document.getElementById('chart_div1'));
chart.draw(data, options);
}
</script>
</div>
<div id="chart_div2" style="float: left;">
<script type="text/javascript">
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Mois');
data.addColumn('number', 'Interventions');
var data1 = @Html.Raw(Json.Encode(ViewBag.chartToday));
$.each(data1, function(index, value) {
data.addRows([[value.Item1, value.Item2]]);
});
var options = { 'title': 'Total Interventions on 2 @(DateTime.Now.Year - 1)', 'width': 400, 'height': 300, legend: { position: 'none' } };
var chart = new google.visualization.ColumnChart(document.getElementById('chart_div2'));
chart.draw(data, options);
}
</script>
</div>
<div id="chart_div3" style="float: left;">
<script type="text/javascript">
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Mois');
data.addColumn('number', 'Interventions');
var data1 = @Html.Raw(Json.Encode(ViewBag.chartToday));
$.each(data1, function(index, value) {
data.addRows([[value.Item1, value.Item2]]);
});
var options = { 'title': 'Total Interventions on 3 @DateTime.Now.Year', 'width': 400, 'height': 300, legend: { position: 'none' } };
var chart = new google.visualization.ColumnChart(document.getElementById('chart_div3'));
chart.draw(data, options);
}
</script>
</div>
</div>
</body>
</html>
相关文章:
- 谷歌地图固定位置覆盖
- 不显示带有本地json文件数据的谷歌地图脚本
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- 谷歌地图标记不会显示
- 无法在JS中显示谷歌地图
- 科尔多瓦页面类应用程序中的多个谷歌地图
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- 需要帮助谷歌地图方向面板在FancyBox中显示
- 在谷歌地图上获取事件的x,y坐标
- 使用谷歌应用程序脚本从工作表中获取值并将其显示在文本框中
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 模拟谷歌地图中的点击
- 谷歌文档表面引擎
- 如何知道哪个标记被谷歌地图点击了
- 谷歌地图JS API+JSON-多个标记没有显示
- 如何在谷歌字体加载时显示加载图像
- 缓存谷歌地图数据
- 谷歌图表-如何更改整个表的css属性
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复