【问题标题】:Best way to format number in SQl for display through Google Charts tooltips bar?在 SQl 中格式化数字以通过 Google 图表工具提示栏显示的最佳方法?
【发布时间】: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


【解决方案1】:

您可以使用与饼图相同的数据表来绘制表格图。

在这里,您为饼图创建数据...

var data = google.visualization.arrayToDataTable(tableRows);

然后画饼图……

var chart = new google.visualization.PieChart(document.getElementById('chart_dev'));
chart.draw(data, options);

你也可以画个表格图表...

var table = new google.visualization.Table(document.getElementById('table_dev'));
table.draw(data, options);

只需确保在加载语句中包含'table' 包...

google.charts.load('current', {packages: ['corechart', 'table'], callback: drawChart});

【讨论】:

  • 感谢您的 WhiteHat。 TableChart 正在绘制。还是带来了原来的问题。在 SQL 中,当我“Format(revenue, 'currency') AS MyRev”时,MY 表中的值显示了我最终需要的值(例如 $2,476,098)。但是,TableChart 中的值显示为 NAN,而实际的 Chart 是空白的。如果我“Format(revenue, '#,##0') AS money”(例如,没有 $ 符号的 2,476,098),TableChart 显示 $2,工具提示也显示为 $2。如果我“Format(revenue, '###0') AS money”(例如 2476098 没有逗号,没有 $ 符号)表格图表和图表正确绘制,工具提示绘制完美 $2,476,098。
  • 我现在明白了。如果我不处理 SQL 中的数字,则该数字是原始的,我在 GoogleChart 脚本中使用正确的格式对其进行格式化,瞧!谢谢白帽!
  • 干杯!请您使用投票按钮附近的复选标记将答案标记为已接受吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-31
  • 1970-01-01
  • 2010-11-22
相关资源
最近更新 更多