如何设置角度谷歌折线图的样式,使其在同一条线上有两种样式

How to style angular-google-line-chart to have two styles for the same line?

本文关键字:样式 一条 两种 设置 何设置 折线图 谷歌      更新时间:2023-09-26

我想要一个使用角度谷歌图表的折线图来显示一些统计数据和未来的投影。我希望我的投影是虚线。下面是我的示例代码。目前,我的折线图将显示相同的颜色,用于统计和未来的预测。我希望它是不同的颜色,或者可能为未来的投影而虚线。

HTML

<div google-chart chart="stat"></div>

JS

$scope.stat = {
          "type": "LineChart",
          "displayed": false,
          "data": {
            "cols": [
              {
                "id": "date",
                "label": "Date",
                "type": "string",
              },
              {
                "id": "sales-id",
                "label": "Sales",
                "type": "number",
              },
            ],
            "rows": [
              {
                "c": [
                  {
                    "v": "20 Nov"
                  },
                  {
                    "v": 19,
                  }
                ]
              },
              {
                "c": [
                  {
                    "v": "21 Nov"
                  },
                  {
                    "v": 17,
                  }
                ]
              },
              {
                "c": [
                  {
                    "v": "22 Nov"
                  },
                  {
                    "v": 18,
                  }
                ]
              },
              {
                "c": [
                  {
                    "v": "23 Nov"
                  },
                  {
                    "v": 18,
                  }
                ]
              },
              //FUTURE PROJECTION
              {
                "c": [
                  {
                    "v": "24 Nov"
                  },
                  {
                    "v": 17,
                  }
                ]
              },
              {
                "c": [
                  {
                    "v": "25 Nov"
                  },
                  {
                    "v": 15,
                  }
                ]
              },
            ]
          },
          "options": {
            "isStacked": "true",
            "fill": 20,
            "displayExactValues": true,
            "legend": {"position":'none'},
          }
        }

您可以通过使用列角色来实现所需的结果:

列角色描述该列中数据的用途:例如,一列可能包含描述工具提示文本、数据点的数据注释或不确定性指示符。

因此,让我们介绍一个风格的角色列:

 {
       "type": "string",
       "role": "style",
       "p": { "role": "style" }
 }

然后,指定线条样式:

 { "v": "line { stroke-color: green }" }

以下修改后的示例演示了如何将线段设置为不同颜色:

var app = angular.module('myApp', ['googlechart']);
app.controller('chartCtrl', function ($scope) {
    $scope.stat = {
        "type": "LineChart",
        "displayed": false,
        "data": {
            "cols": [
              {
                  "id": "date",
                  "label": "Date",
                  "type": "string",
              },
              {
                  "id": "sales-id",
                  "label": "Sales",
                  "type": "number",
              },
              {
                  "type": "string",
                  "role": "style",
                  "p": { "role": "style" }
              }
            ],
            "rows": [
              {
                  "c": [
                    {
                        "v": "20 Nov"
                    },
                    {
                        "v": 19,
                    },
                    { "v": null }
                  ]
              },
              {
                  "c": [
                    {
                        "v": "21 Nov"
                    },
                    {
                        "v": 17,
                    },
                    { "v": null }
                  ]
              },
              {
                  "c": [
                    {
                        "v": "22 Nov"
                    },
                    {
                        "v": 18,
                    },
                    { "v": null }
                  ]
              },
              {
                  "c": [
                    {
                        "v": "23 Nov"
                    },
                    {
                        "v": 18,
                    },
                    { "v": null }
                  ]
              },
              //FUTURE PROJECTION
              {
                  "c": [
                    {
                        "v": "24 Nov"
                    },
                    {
                        "v": 17,
                    },
                    { "v": "line { stroke-color: green }" }
                  ]
              },
              {
                  "c": [
                    {
                        "v": "25 Nov"
                    },
                    {
                        "v": 15,
                    },
                    { "v": "line { stroke-color: green }" }
                  ]
              },
            ]
        },
        "options": {
            "isStacked": "true",
            "fill": 20,
            "displayExactValues": true,
            "legend": { "position": 'none' },
        }
    }
});
<script src="http://code.angularjs.org/1.2.10/angular.js"></script>
<script src="http://bouil.github.io/angular-google-chart/ng-google-chart.js"></script>
<div ng-app='myApp' ng-controller="chartCtrl">
    <div google-chart chart="stat"></div>
</div>

JSFiddle