2012-06-28 95 views
9

我正在使用Google圖表API顯示折線圖,但我需要將數字顯示爲貨幣。在圖表本身上,我可以將數字顯示爲貨幣,但是當鼠標懸停在某個點上並顯示對話框時,該數字不會按指定顯示。在Google圖表中顯示貨幣API

 <script type="text/javascript"> 
      google.load("visualization", "1", {packages:["corechart"]}); 
      google.setOnLoadCallback(drawChart); 

      function drawChart() { 

       var data = google.visualization.arrayToDataTable(<?php echo $data; ?>); 


       var options = { 
        chartArea:{left:40,top:10}, 
        pointSize: 6, 
        vAxis: {format:'$###,###,###.00'}, // Money format 
        legend: {position:'none'} 



       }; 

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

      } 
     </script> 

你可以從這個圖片看到,立柱左側顯示在上面的代碼中使用vAxis.format指定不使用小數點,但該對話框不顯示小數或美元符號(我在屏幕截圖後添加美元符號)。

http://i48.tinypic.com/121uznm.jpg

我怎樣才能獲得在對話框中顯示的相同排列的豎列左邊的數字是多少?

我嘗試更新PHP數組,我使用它將數據填充到貨幣格式,但之後Google圖表不顯示,因爲它不是普通數字。

+0

你有沒有找到你的答案? –

回答

10

現在有一種格式可以指定單元格的原始值和格式化值[1]:將值加載到圖表中時,而不是addRow(['2012-08-31, 4]);這將是addRow(['2012-08-31', {v: 4, f: '$4.00'}]);更多的例子,語法是通過文檔灑,但我找不到一個好地方鏈接到它。改變生成示例中的$ data對象的方法不應該太難以包含該格式,但也有其他格式化選項。

如果您寧願在JS中爲任何原因定義格式,您可以使用NumberFormatter

[1]當我第一次開始使用圖表工具時,我不認爲他們有這種語法。不知道何時添加它,或者直到最近我才注意到它。

+0

這工作,謝謝! – Dave

1

,我發現非常有用的另一種選擇,並且在概念上類似於arrayToDataTable()方法是JavaScript文字初始化語法如下:

var data = new google.visualization.DataTable(
       { 
        cols: [ 
         {id: 'date', label: 'Date', type: 'string'}, 
         {id: 'parnter1', label: 'Partner A', type: 'number'}, 
         {id: 'partner2', label: 'Partner B', type: 'number'} 
        ], 
        rows: [ 
         { c: [{ v: '06/2012' }, { v: 12345, f: '$12,345' }, { v: 98765, f: '$98,765'}] }, 
         { c: [{ v: '07/2012' }, { v: 10123, f: '$10,123' }, { v: 123123, f: '$123,123'}] } 
        ] 
       } 
      ); 

https://google-developers.appspot.com/chart/interactive/docs/datatables_dataviews

11

這是完美的格式,以巴西貨幣:

var formatter = new google.visualization.NumberFormat({decimalSymbol: ',',groupingSymbol: '.', negativeColor: 'red', negativeParens: true, prefix: 'R$ '}); 
    formatter.format(data, 1); 

工作正常,絲毫美元也只是改變R$$

10500.5住宿10.500,50,更前綴

1050010.500,00,更多前綴