【发布时间】:2019-11-07 19:40:19
【问题描述】:
我有一个将数据输出到数组中的 SQL 查询,我在谷歌图表中使用它。当数字字段被格式化为原始数字(例如 374000000)时,我的代码中的图表和格式可以正常工作。工具提示正确显示货币和逗号(例如 $374,000,000)。但是,由于我在图表下方包含了表格,因此更难使用。因此,当我在 SQL 中正确格式化数字并将它们显示在表格中(例如 374,000,000)时,谷歌图表工具提示会显示 4 美元。我无法弄清楚发生了什么。到目前为止,这是我尝试过的:
<script type="text/javascript">
google.charts.load('current', {packages: ['corechart'],
callback: drawChart});
function drawChart() {
var tableRows = [];
var results = document.getElementById('chart');
Array.prototype.forEach.call(results.rows, function(row) {
var tableColumns = [];
Array.prototype.forEach.call(row.cells, function(cell) {
var cellText = cell.textContent || cell.innerText;
switch (cell.cellIndex) {
case 0:
tableColumns.push(cellText.trim());
break;
default:
switch (row.rowIndex) {
case 0:
tableColumns.push(cellText.trim());
break;
default:
tableColumns.push(parseFloat(cellText));
}
}
});
tableRows.push(tableColumns);
});
var data = google.visualization.arrayToDataTable(tableRows);
var formatter = new google.visualization.NumberFormat(
{negativeColor: 'red', negativeParens: true, pattern: '$###,###'});
formatter.format(data, 1);
var options = {
slices: { 0: {offset: 0.2},
1: {offset: 0.2},
2: {offset: 0.0},
3: {offset: 0.1},
4: {offset: 0.0},
},
title: 'Nice chart',
titleTextStyle: {color: 'black', fontSize: 28},
bar: {groupWidth: '70%'},
chartArea: { backgroundColor: { fill: '#F0F8FC', opacity: 100 }},
fontSize:12,
legend: { position: 'right', textStyle: { color: 'black', fontSize: 12}},
tooltip: {isHtml: true},
is3D: true,
};
var chart = new google.visualization.PieChart(document.getElementById('chart_dev'));
chart.draw(data, options);
}
</script>
【问题讨论】:
-
如果您使用 google 的 table chart 而不是您正在使用的表格怎么办?
-
Google 表格图表似乎强制用户对值进行硬编码,而我使用的方法从数据库中实时接收我的值。
-
不,它使用您可以加载的数据表,就像任何其他图表一样。您甚至可以使用与饼图相同的数据表来绘制表格图表
-
白仇恨。我查看了您向其他人提出的一些建议,并承认,您显然是一位经验丰富且技术娴熟的开发人员,远远超出了我的技能范围。但是,我不关注你。当我转到谷歌表格图表页面时,这些值是硬编码的。我认为没有办法让我的 SQL 查询与我目前的做法相比。如果有一些我没有看到的例子,而你觉得很慷慨,请指出来。
标签: javascript charts format google-visualization tooltip