【问题标题】:ng-google-chart custom color for each column in column chartng-google-chart 柱形图中每一列的自定义颜色
【发布时间】:2016-04-21 09:27:25
【问题描述】:

我正在使用 ng-google-charts 模块为我的 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": {}
    };

【问题讨论】:

    标签: javascript angularjs charts google-visualization


    【解决方案1】:

    添加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 显示您可以使用的各种颜色定义。
    仅供参考:此选项适用于材料图表...

    【讨论】:

    • 如果您不想弄乱调色板,可以将每个条形值添加为列而不是行,这将强制图表显示每个不同的颜色。
    • 您的答案有效,但是使用颜色数组或将条形值添加为列的最佳做法是什么?
    • 不确定最佳实践,但我更喜欢使用样式列,因为它允许完全控制和更多选项,而不仅仅是颜色。将行转换为列可能会造成混淆,并且还会使自定义条间距、轴标签、图例条目等更加困难,因为为每个创建了单独的系列...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2016-05-11
    • 2019-09-15
    相关资源
    最近更新 更多