我使用来自Google图表的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之类的“ dataTable:视图”,但我只想在“ view:”选项或chartWrapper.setView()选项中进行设置。

最佳答案

您的第一个方法(设置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);


如果这不起作用,您可以张贴一个完整的示例来说明问题吗?

10-04 21:29