我正在创建一个项目,需要能够显示多个谷歌圆环图,每个图表具有不同的值和颜色。目前,我正在创建 3 个图表,通过示例 google 图表代码在单独的 html 页面上使用三个按钮导航到这些图表:
<html>
<head>
<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 = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Work', 11],
['Sleep', 7]
]);
var options = {
title: 'My Daily Activities',
pieHole: 0.95,
slices: {
0: { color: 'yellow' },
1: { color: 'transparent' }
}
};
var chart = new google.visualization.PieChart(document.getElementById('donutchart'));
chart.draw(data, options);
}
</script>
</head>
<body>
<div id="donutchart" style="width: 900px; height: 500px;"></div>
</body>
</html>
但在 data
数组中提供不同的数据,并在 slices
数组中提供不同的颜色。
有没有一种方法可以只使用 1 个图表,并通过仅使用按钮和 1 个 html 页面将一个图表的数据和颜色更改为三组不同的值,而不必使用三个单独的 html 页面创建三个单独的图表?理想情况下,该解决方案将具有多个按钮,单击这些按钮时,将更改图表以包含不同的数据集和不同的颜色图表以区分不同的数据集,但我不确定这是否可能。
最佳答案
像这样的东西可能会帮助你......
google.charts.load('current', {
'callback': function () {
var dataSales = google.visualization.arrayToDataTable([
['Year', 'Sales'],
['2015', 1000],
['2016', 1030]
]);
var dataExpenses = google.visualization.arrayToDataTable([
['Year', 'Expenses'],
['2015', 600],
['2016', 540]
]);
var dataRevenue = google.visualization.arrayToDataTable([
['Year', 'Revenue'],
['2015', 400],
['2016', 490]
]);
var options = {
legend: 'none',
title: 'Results',
pieHole: 0.3,
slices: {
0: { color: 'yellow' },
1: { color: 'transparent' }
}
};
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(dataSales, options);
document.getElementById('sales').addEventListener('click', function () {
options.slices[0].color = 'yellow';
chart.draw(dataSales, options);
}, false);
document.getElementById('expenses').addEventListener('click', function () {
options.slices[0].color = 'cyan';
chart.draw(dataExpenses, options);
}, false);
document.getElementById('revenue').addEventListener('click', function () {
options.slices[0].color = 'magenta';
chart.draw(dataRevenue, options);
}, false);
},
'packages':['corechart']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<input type="button" id="sales" value="Sales" />
<input type="button" id="expenses" value="Expenses" />
<input type="button" id="revenue" value="Revenue" />
<div id="chart_div"></div>
关于javascript - 使用按钮更改 Google 图表数据和外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38161862/