Chart.js - How to set a line chart dataset as disabled on load

后端 未结 3 1375
青春惊慌失措
青春惊慌失措 2020-12-14 05:20

Using chart.js v2, is it possible to mark a dataset in a line chart as being disabled on initial load?

Didn\'t find an option for it in the documentation.

相关标签:
3条回答
  • 2020-12-14 06:03

    Yes, there is a "hidden" flag in ChartJS. eg.

    data:
    {
            datasets: [
            {
                data: [1,2,3],
                label: 'My First Dataset',
                hidden: true,
            },
            ],
    }
    

    See this issue on GitHub: https://github.com/chartjs/Chart.js/issues/689

    0 讨论(0)
  • 2020-12-14 06:06

    If you are using angular-chartjs, then you can add the properties of the dataset in the chart-dataset-override property:

    For example:

    HTML:

    <div class="container" ng-app="app" ng-controller="ChartCtrl">
      <canvas id="bar" class="chart chart-bar" chart-data="data" chart-labels="labels" chart-series="series" chart-dataset-override="datasetOverride">
      </canvas>
    </div>
    

    Javascript:

    Chart.defaults.global.legend.display = true;
    
    angular.module("app", ["chart.js"])
      .controller("ChartCtrl", function($scope) {
    
        $scope.labels = ['2006', '2007', '2008', '2009', '2010', '2011', '2012'];
        $scope.series = ['Series A', 'Series B'];
    
        $scope.data = [
          [65, 59, 80, 81, 56, 55, 40],
          [28, 48, 40, 19, 86, 27, 90]
        ];
    
        $scope.datasetOverride = [{}, {
          hidden: true,
        }];
      });
    
    0 讨论(0)
  • 2020-12-14 06:07

    The accepted solution has the downside, that hiding/unhiding signals might sometimes fail after initializing the chart like that.

    It might be a better idea to change it in the current metadata of the dataSet, which holds the actual data that is used by the chart:

    chart.data.datasets.forEach((dataSet, i) => {
      var meta = chart.getDatasetMeta(i);
    
      meta.hidden = (<your-condition-here>);
    });
    
    this.chart.update();
    
    0 讨论(0)
提交回复
热议问题