首页 文章

Google图表中ChartWrapper中的图表格式

提问于
浏览
0

我正在使用Google Charts的Dashboard部分创建各种图表 .

为了制作我的图表,我正在使用这个约定:

var chartName = new google.visualization.ChartWrapper({
    // lots of options here
});

但是,当我在ChartWrapper对象中输入时,某些自定义细节未被调用 .

特别是趋势线,将条形图更改为条形图上的水平线,并使条形图堆叠 .

还有其他一些,但这些应该足以满足这个问题,因为它们都包含在我想要排除故障的单个图表中 .

我认为在所有这些中我都缺少一个共同的元素,这就是为什么我认为最好将它们全部包含在一个问题中 . 必须有一些关于ChartWrapper语法的细节我不能正确 .

对于上面提到的所有项目,我首先将它们放在'options'对象中,然后直接将它们作为自己的键放在ChartWrapper()中,而不需要任何额外的嵌套 .

进入更具体的细节:

CODE:

这是一些不起作用的示例代码:

var childrenHelpedChart = new google.visualization.ChartWrapper({
        'chartType'       :  'Bar',
        'containerId'     :  'chart_div2',
        'view'            :  {
            'columns'     : [0, 2, 3]
        },

        'options'         : {
            'height'      : 400,
            'trendlines'  :  {0 : {}},
            'isStacked'   : 'percent',
            'bar'         : 'horizontal'
        },
    });

我使用的图表响应'height'变量,但'trendlines','isStacked'和'bar'都被置若罔闻 .

但是,如果我将它们放在“选项”对象之外,它们也不会显示在图表中 .

例如,以下代码也没有效果 .

CODE2:

var childrenHelpedChart = new google.visualization.ChartWrapper({
        'chartType'       :  'Bar',
        'containerId'     :  'chart_div2',
        'view'            :  {
            'columns'     : [0, 2, 3]
        },

        'options'         : {
            'height'      : 400
        },
        'trendlines'      : {
            0             : {}
        },
        'bar'             : 'horizontal',
        isStacked       : 'percent'
});

我看到两个非常相似的问题herehere,但这两个问题都没有答案 .

如果它在这里有用,那就是我用来生成图表的整个脚本:

SCRIPT:

google.charts.setOnLoadCallback(initialize);

function initialize() {
    var query = new google.visualization.Query('https://docs.google.com/spreadsheets/d/1lmmpJs2Bz3EfQWExB4KXq_uJWoLlq1PMCahy6w4ipcE/gviz/tq?gid=1104676809');
    query.send(drawDashboard)
}

function drawDashboard(response) {

    var data = response.getDataTable();

    var dashboard = new google.visualization.Dashboard(
        document.getElementById('dashboard_div'));

    var storytimeDateFilter2 = new google.visualization.ControlWrapper({
        'controlType':  'DateRangeFilter',
        'containerId':  'date_filter_div2',
        'options'    :  {
            'filterColumnIndex' : 0
        }
    }); 

    var childrenHelpedChart = new google.visualization.ChartWrapper({
        'chartType'       :  'Bar',
        'containerId'     :  'chart_div2',
        'view'            :  {
            'columns'     : [0, 2, 3]
        },

        'options'         : {
            'height'      : 400
        },
        'trendlines'      : {
            0             : {}
        },
        'bar'             : 'horizontal',
        'isStacked'       : 'percent'
    });

dashboard.bind(storytimeDateFilter2, childrenHelpedChart);
dashboard.draw(data);
}

1 回答

  • 2

    您使用的图表是材料图表
    有几个选项根本不适用于Material Chart
    你可以在这里找到列表 - > Tracking Issue for Material Chart Feature Parity #2143

    要更正,您可以使用核心图表版本,
    附加选项 - > theme: 'material'

    材料= 'Bar'

    var childrenHelpedChart = new google.visualization.ChartWrapper({
        'chartType'       :  'Bar',  // <- Material version
        'containerId'     :  'chart_div2',
        'view'            :  {
            'columns'     : [0, 2, 3]
        },
    
        'options'         : {
            'height'      : 400,
            'trendlines'  :  {0 : {}},
            'isStacked'   : 'percent',
            'bar'         : 'horizontal'
        },
    });
    

    核心= 'BarChart' (水平) - 或 - 'ColumnChart' (垂直)

    var childrenHelpedChart = new google.visualization.ChartWrapper({
        'chartType'       :  'BarChart',  // <-- Core version
        'containerId'     :  'chart_div2',
        'view'            :  {
            'columns'     : [0, 2, 3]
        },
    
        'options'         : {
            'height'      : 400,
            'trendlines'  :  {0 : {}},
            'isStacked'   : 'percent',
            'theme'       : 'material'  // <- Material theme
        },
    });
    

相关问题