【问题标题】:Google Chart with Google Spreadsheet谷歌图表和谷歌电子表格
【发布时间】:2014-03-01 02:19:56
【问题描述】:

我想使用 Google 电子表格中的数据创建一个自定义图表。然而,它并没有那么好。你能给我一些建议吗?

这是我的电子表格中考勤数据的数据结构

Date   | John | Allen | Danny
11 Feb | Yes  | No    | Yes
12 Feb | No   | Yes   | Yes
13 Feb | Yes  | Yes   | Yes
  1. 我想为每一天创建一个出勤图表,显示所有天的总和(例如 2 月 11 日有 2 人,2 月 12 日有 2 人)。我知道如何获取数据,但如何在 Google Chart 脚本中求和?
  2. 我想为每个人在一段时间内(例如 2 月/3 月)创建出勤表。另外我想创建一个日期过滤器。再次,我很难总结每个人的“是”。

提前致谢

【问题讨论】:

    标签: google-visualization google-sheets


    【解决方案1】:

    要创建每天的出勤率图表,您需要使用 DataView 和计算列,计算每天“是”的总和:

    var view = new google.visualization.DataView(data);
    view.setColumns([0, {
        type: 'number',
        label: 'Attendance',
        calc: function (dt, row) {
            // assumes all columns after the first are yes/no columns for tracking attendance
            var attendance = 0;
            for (var i = 1; i < dt.getNumberOfColumns(); i++) {
                attendance += (dt.getValue(row, i) == 'Yes') ? 1 : 0;
            }
            return attendance;
        }
    }]);
    

    要按人获取考勤,需要使用google.visualization.data.group函数:

    var groupColumns = [];
    for (var i = 1; i < data.getNumberOfColumns(); i++) {
        groupColumns.push({
            type: 'number',
            label: data.getColumnLabel(i),
            aggregation: function (vals) {
                var attendance = 0;
                for (var j = 0; j < vals.length; j++) {
                    attendance += (vals[j] == 'Yes') ? 1 : 0;
                }
                return attendance;
            }
        });
    }
    var groupedData = google.visualization.data.group(data, [{
        type: 'number',
        column: 0,
        modifier: function () {return 0;}
    }], groupColumns);
    

    【讨论】:

    • 谢谢。顺便问一下,Google Chart 有没有“调试器”?
    • 没有专门针对 Visualization API 的调试器,但您可以使用 Chrome 或 Firefox(如果需要,甚至可以使用更新版本的 IE)中内置的调试器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多