javascript - ng-google-chart 柱形图中每列的自定义颜色

标签 javascript angularjs charts google-visualization

我正在使用 ng-google-charts 模块为我的 Angular 应用程序构建 google 图表,我想做的是绘制柱形图。

代码工作正常,图表似乎绘制正确,但我不知道如何在生成的行中添加颜色,以便每列的颜色不同。

这是我的代码,查看谷歌图表文档,似乎我应该能够为每一列分配一个十六进制代码,但我见过的所有示例都没有使用 Angular ,并且没有一个将其行构建为文字对象,例如我需要做。

var collsArray = [];
    var rowsArray = [];

    for (var i = 0; i < vm.projects.length ; i++) {
        //this is where I build each data row and where I think I need to add the color
        rowsArray.push({
             "c": [
                {
                    "v": vm.projects[i].name
                },
                {
                    "v": vm.projects[i].developers,
                    "f": vm.projects[i].developers + ' developers working on ' + vm.projects[i].name
                }]
        });

    }
    collsArray = [{id: 'project', label: 'Project', type: 'string'},
           {id: 'developers', label: 'Developers working', type: 'number'}];

    vm.chartProjects = {
          "type": "ColumnChart",
          "displayed": false,
          "data": {
            "cols": collsArray,
            "rows": rowsArray
          },
          "options": {
            "isStacked": "true",
            "fill": 0,
            "width": '100%',
            "height": '100%',
            "displayExactValues": true,
            "chartArea": {
                "left": "1%",
                "top": "1%",
                "height": "98%",
                "width": "98%"
            }
          },
          "formatters": {},
          "view": {}
    };

最佳答案

添加Style Column Role是为单个条形着色的最简单方法。

你可以尝试这样的事情......

var colorPallette = [
  '#7B241C', '#CB4335', '#FF9900', 'Gold', '#28B463',
  '#196F3D', '#0D47A1', '#29B6F6', 'Indigo', 'Violet'
];

var collsArray = [];
var rowsArray = [];

collsArray = [
  {id: 'project', label: 'Project', type: 'string'},
  {id: 'developers', label: 'Developers working', type: 'number'},
  {role: 'style', type: 'string'}  // style column
];

var colorIndex = -1;
for (var i = 0; i < vm.projects.length ; i++) {
  // manage color pallette
  colorIndex++;
  if (colorIndex === colorPallette.length) {
    colorIndex = 0;
  }
  rowsArray.push({
    "c": [
      {
        "v": vm.projects[i].name
      },
      {
        "v": vm.projects[i].developers,
        "f": vm.projects[i].developers + ' developers working on ' + vm.projects[i].name
      },
      {
        "v": colorPallette[colorIndex]  // style column
      }
    ]
  });
}

This answer显示您可以使用的各种颜色定义。
仅供引用:此选项不适用于 Material 图表...

关于javascript - ng-google-chart 柱形图中每列的自定义颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36765358/

相关文章:

javascript - 返回 $.extend 并将其放在 Backbone 中

node.js - Karma 测试运行程序 - 无法捕获 chrome

javascript - Morris.js折线图中点的颜色和样式如何修改?

Angular 4 - 创建热图

javascript - getImageURI() 不适用于 orgchart by google

javascript - jQuery 中的基本 JSON 解析

javascript - 使用 ng-click 更改出厂值

javascript - 如何测试一个空的 JavaScript 对象?

javascript - md-tabs 在其重复对象发生更改时失去范围 [AngularJS Material ]

angularjs - 如何在angularJs中存储一些数据以供以后使用?