2014-04-29 55 views
2

我使用ChartWrapper從谷歌圖..我的實際執行是這樣的:Google Charts,我如何在ChartWrapper中設置計算的視圖?

var dataTable=new google.visualization.DataTable(DATA); 

var options = { 
       title: 'Name of the Chart', 
       vAxis: {title: "Cups"}, 
       hAxis: {title: "Month"}, 

       isStacked: false, 

       pointSize: 3 
      }; 

var chartWrapperArgs = { 
        chartType: "LineChart", 
        dataTable: dataTable, 
        view: {"columns":[0,1,2]}, 
        options: options, 
        containerId: "chart"] 
       }; 
var chartWrapper = new google.visualization.ChartWrapper(chartWrapperArgs); 
chartWrapper.draw(); 

問題是,有時我必須將數據類型從「日期」更改爲「串」我在舊做到這一點實現(沒有ChartWrapper)是這樣的:

var dataView = new google.visualization.DataView(dataTable); 

       dataView.setColumns([{ 
        type: 'string', 
        label: dataView.getColumnLabel(0), 
        calc: function (dt, row) { 
         return dt.getFormattedValue(row, 0); 
        } 
       }, 1]); 

這個作品,現在我已經嘗試同樣與我ChartWrapper執行,但沒有成功:

我已經試過這兩種方法:

1.) var dataTable = new google.visualization.DataTable(DATA);

var chartWrapperArgs = { 
        chartType: "LineChart", 
        dataTable: dataTable, 
        view: {"columns":[ 
        { 
         type: 'string', 
         label: dataTable.getColumnLabel(0), 
         calc: function (dt, row) { 
          return dt.getFormattedValue(row, 0); 
         } 
        }, 
        1 
       ]}, 

        options: options, 
        containerId: "chart"] 
       }; 
var chartWrapper = new google.visualization.ChartWrapper(chartWrapperArgs); 

和我的第二個:

var dataTable=new google.visualization.DataTable(DATA); 
var dataView = new google.visualization.DataView(dataTable); 

       dataView.setColumns([{ 
        type: 'string', 
        label: dataView.getColumnLabel(0), 
        calc: function (dt, row) { 
         return dt.getFormattedValue(row, 0); 
        } 
       }, 1]); 

       var ViewData= dataView.toJSON(); 


var chartWrapperArgs = { 
        chartType: "LineChart", 
        dataTable: dataTable, 
        view: ViewData, 

        options: options, 
        containerId: "chart"] 
       }; 
var chartWrapper = new google.visualization.ChartWrapper(chartWrapperArgs); 

但這絲毫也沒有工作..

什麼我錯了嗎?我知道我可以直接將視圖設置爲像dataTable:view的數據表,但我只想在「view:」選項或chartWrapper.setView()選項中做到這一點。或者這是不可能的嗎?

+0

你可以發佈你的代碼的小提琴嗎? – juvian

回答

2

你的第一個方法(設置view參數)應該工作,但你的代碼在containerId: "chart"]線的末端有一個語法錯誤(]不應該存在):

var chartWrapperArgs = { 
    chartType: "LineChart", 
    dataTable: dataTable, 
    view: { 
     columns: [{ 
      type: 'string', 
      label: dataTable.getColumnLabel(0), 
      calc: function (dt, row) { 
       return dt.getFormattedValue(row, 0); 
      } 
     }, 1] 
    }, 
    options: options, 
    containerId: "chart" 
}; 
var chartWrapper = new google.visualization.ChartWrapper(chartWrapperArgs); 

如果ISN」工作,你能發表一個完整的例子來證明問題嗎?

+0

它現在工作我已經使用了一個錯誤的語法,但thx爲你的幫助 – user2115378

相關問題