如何绘制堆叠柱类型的 Google 图表

2023-12-09

我有这个表结构:

Name Grade       Count
X    VeryGood      10
X    Excellent      2
X    Failed         0
Y    VeryGood       7
Y    Excellent      1
Y    Failed         2

我想在堆积谷歌图表中显示这些数据,类似于:

水平:计数

垂直:名称

我有什么想法可以实现这一目标吗? P.S:我正在使用ajax数据源。

enter image description here


要绘制相关图表,数据表的结构需要如下所示,
每个年级都有系列/列。

['Name', 'VeryGood', 'Excellent', 'Failed'],
['X', 10, 2, 0],
['Y', 7, 1, 2],

但这将很难建造,
无需对查询中的列值进行硬编码。

相反,我们可以使用谷歌的DataView and group方法。

请参阅以下工作片段...

google.charts.load('current', {
  packages: ['corechart']
}).then(function () {
  var data = google.visualization.arrayToDataTable([
    ['Name', 'Grade', 'Count'],
    ['X', 'VeryGood', 10],
    ['X', 'Excellent', 2],
    ['X', 'Failed', 0],
    ['Y', 'VeryGood', 7],
    ['Y', 'Excellent', 1],
    ['Y', 'Failed', 2],
  ]);

  var aggColumns = [];
  var viewColumns = [0];

  var distinctLabels = data.getDistinctValues(1);
  distinctLabels.forEach(function (label, index) {
    viewColumns.push({
      calc: function (dt, row) {
        if (dt.getValue(row, 1) === label) {
          return dt.getValue(row, 2);
        }
        return null;
      },
      type: 'number',
      label: label
    });
    aggColumns.push({
      column: index + 1,
      aggregation: google.visualization.data.sum,
      type: 'number'
    });
  });

  var view = new google.visualization.DataView(data);
  view.setColumns(viewColumns);

  var groupData = google.visualization.data.group(
    view,
    [0],
    aggColumns
  );

  var chart = new google.visualization.BarChart(document.getElementById('chart'));
  chart.draw(groupData, {
    isStacked: true
  });
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart"></div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何绘制堆叠柱类型的 Google 图表 的相关文章

随机推荐

  • 为什么PyGame动画闪烁

    所以我运行代码 它就开始出现故障 我是 pygame 的新手 这是代码 import pygame pygame init Screen Pixels by Pixels X and Y X right and left Y up and
  • Windows下每5分钟运行一次python脚本

    我有一个简单的 python 脚本从 html 页面抓取一些数据并将结果写入 csv 文件 如何自动化抓取 即在 Windows 下每五分钟启动一次 谢谢 彼得 查看此链接 http blogs esri com esri arcgis 2
  • 如何检查区域设置是否为 UTF-8?

    我正在与 Yocto 合作 为 ARM 设备 i MX 6Quad 处理器 创建嵌入式 Linux 发行版 我已经使用变量配置了所需区域设置的列表 IMAGE LINGUAS de de fr fr en gb en gb iso 8859
  • 如何在 C# 中从 IntPtr 获取 byte[]

    我想通过一个IntPtr一个方法需要一个byte C 中的参数 这可能吗 如果可能的话我该怎么做 thx 查看Marshal Copy method byte managedArray 1 2 3 4 5 int size Marshal
  • 抽象方法的目的是什么?

    abstract public class car abstract void drive 正如上面的代码片段所示 Java 中抽象方法的具体用途是什么 据我所知 根据定义 他们不允许拥有身体 通过声明抽象方法 您并没有提供实现 而是强制扩
  • 使用 Pandas 将重复项提取到新数据框中

    我有一个包含很多列的大型数据框 其中一列应该是唯一 ID 另一列是年份 不幸的是 唯一 ID 列中有重复项 我知道如何生成所有重复项的列表 但我真正想做的是将它们提取出来 以便仅保留第一个条目 按年份 例如 数据框当前看起来像这样 带有一堆
  • 从 Fortran 运行时 METIS 段错误

    我正在尝试使用METIS用于网格划分的库 作为我为有限元计算编写的 Fortran 程序的一部分 METIS 是用 C 编写的 但它应该可以与 Fortran 90 一起正常工作 但我不断遇到段错误 一个潜在的问题是 我向一些参数提供了空指
  • 如何在单声道下强制应用程序的单实例?

    因此 我能够在 Windows 上强制执行应用程序的单个实例 如下所示 STAThread class method Program Main args array of string begin var mutex new Mutex t
  • 如何从命令行使用特定修订版号“恢复到此修订版”?

    我目前正在制作一个脚本 在其中我已经熟悉了Tortoise SVN 及其相应的命令行功能 我正确更新了脚本 以通过一系列测试找到正确构建的 修订版 在脚本记录该变量 具体的版本号 后 我更新到 HEAD 修订版 这样我就可以在遇到问题的过程
  • Dropwizard 配置文件安全性

    配置文件 yml 用于使用 Dropwizard 0 9 2 最新版本 开发的 REST API api 所需的大部分凭据 例如数据库密码密钥等 都存储在配置文件中 我们已经根据参考文献中提到的项目实现了大部分内容 位于dropwizard
  • Cocos2d如何切换场景

    cocos2d中如何切换场景 我有我的主类 HellowWorldLayer h m 但我似乎无法正确切换场景 我努力了 CCDirector sharedDirector replaceScene Race node And CCDire
  • Javascript:数组加数字[重复]

    这个问题在这里已经有答案了 JavaScript 中的某些操作会返回意外结果 有一个是极其奇怪的 1 1 任何人都可以解释为什么它会这样工作吗 由于 运算符而转换为空字符串 所以 1 gt 1 数字也转换为字符串
  • UnreachableBrowserException 尝试使用 IEDriver 在 Selenium Webdriver 中启动

    我有一套在 Firefox 和 Chrome 中运行得非常出色的自动化功能 并且我还想启动 IEDriver 的实例 我已经按照以下方式设置了 IEDriverSelenium 的 Google 代码 wiki 具有正确的路径 如果我更改路
  • 具有模糊和斜角的 GLPaint 画笔效果

    我正在开发一个基于 GLPaint 代码的绘图应用程序 有人知道如何获得这样的效果吗 我尝试过使用不同的画笔宽度和高度值 但它仍然保持不变 我需要考虑 glBlendFunc 吗 或者彻底改变画笔的宽度和高度是否可以实现 Thanks in
  • C++ 中是否有生产就绪的无锁队列或哈希实现 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我一直在谷歌上搜索 C 中的无锁队列 我找到了一些代码和一些试验 但我无法编译任何东西 无锁哈希也将受到欢迎 概括 到目前为止我还没有得到肯定的答案
  • 如何在命令行中读取浮点数?

    如何在命令行中读取浮点数或整数 test py 11 22 4 11 7 99 9 69 我试过了 numbersList float sys argv 1 len sys argv import sys args map float sy
  • 正则表达式匹配 C# 中的所有大写和下划线

    我需要从字符串中查找仅包含大写字母和下划线的所有单词 string str ABCD EFG LMNO hello world PQR ST UVW US Apple PQR ZYZ PQR LMN ZYZ string pattern A
  • 10.6中如何在Interface Builder中创建NSImageCell的NSMatrix

    如何在 Interface Builder 3 2 1 即为 Snow Leopard 制作的 中创建 NSImageCell 单元格 通常位于 NSImageView 中 的矩阵 NSMatrix 对象 在 过去 您可以拖动 NSImag
  • Spring @Transactional 属性是否适用于私有方法?

    如果我有一个 事务性Spring bean中的私有方法上的注释 注释有什么作用吗 If the Transactional注释位于公共方法上 它可以工作并打开事务 public class Bean public void doStuff
  • 如何绘制堆叠柱类型的 Google 图表

    我有这个表结构 Name Grade Count X VeryGood 10 X Excellent 2 X Failed 0 Y VeryGood 7 Y Excellent 1 Y Failed 2 我想在堆积谷歌图表中显示这些数据 类