如何在 ng2-charts 中使用 Group Stacking?
How to do Group Stacking available in ng2-charts?
在原始的Chart.js数据集结构中有一个属性称为堆栈,可用于单独堆叠一组数据集。
"stack: String The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack)"
我试过在 ng2-charts 中这样做:
public barChartData: any[] =[
{
data: [],
label: 'Label',
type: 'bar',
stack: '1'
}
]
但什么也没做。
这是来自 ng2-charts 的数据集 属性:
datasets (Array<{data: Array | number[], label: string}>) - 数据查看,出现在图例和工具提示中的数据集标签
是否有单独堆叠组的解决方法?
谢谢!
您对文档所说的是正确的,我正在尝试做同样的事情。我以这个为例,它应该可以工作,根据 link : http://www.chartjs.org/docs/latest/charts/bar.html
在我的 .ts 中:
public barChartData:any[]=[
{data: [65, 59, 80, 81, 56, 55, 40], label: 'Series A', stack: '1'},
{data: [28, 48, 40, 19, 86, 27, 90], label: 'Series B', stack: '1'},
{data: [42, 24, 71, 14, 31, 49, 30], label: 'Series C', stack: '2'}
];
public barChartLabels:string[] = ['2006', '2007', '2008', '2009', '2010', '2011', '2012'];
public barChartOptions:any = {
responsive: true,
scales:{
xAxes:[{
stacked:true
}],
yAxes:[{
stacked:true
}]
}
};
public barChartType:string = 'bar';
在我的 HTML 中:
<canvas id="chart1" baseChart
[datasets]="barChartData"
[labels]="barChartLabels"
[options]="barChartOptions"
[chartType]="barChartType"
(chartHover)="chartHovered($event)"
(chartClick)="chartClicked($event)"></canvas>
我找到了这个 chart.js 的分组堆栈栏示例。不幸的是它是普通的 JS:https://github.com/chartjs/Chart.js/blob/master/samples/charts/bar/stacked-group.html
编辑:
使用我上面的代码并执行 npm install chart.js@2.6 --save
-> 它直接对我有用
我在检查创建条形图时是否检查了堆栈时找到了这个解决方案。它们不在我当前的版本中。
所以我发现这样做的方法是取消堆叠 yaxis,然后将堆栈添加到数据集 属性,如下所示:
{
data: [],
label: 'dataset 1',
type: 'bar',
yAxisID: 'bar-y-axis1',
stack: '1'
},
{
data: [],
label: 'dataset 3',
type: 'bar',
yAxisID: 'bar-y-axis1',
stack: '1'
},
{
data: [],
label: 'dataset 4',
type: 'bar',
yAxisID: 'bar-y-axis1',
stack: '1'
},
在原始的Chart.js数据集结构中有一个属性称为堆栈,可用于单独堆叠一组数据集。
"stack: String The ID of the group to which this dataset belongs to (when stacked, each group will be a separate stack)"
我试过在 ng2-charts 中这样做:
public barChartData: any[] =[
{
data: [],
label: 'Label',
type: 'bar',
stack: '1'
}
]
但什么也没做。
这是来自 ng2-charts 的数据集 属性: datasets (Array<{data: Array | number[], label: string}>) - 数据查看,出现在图例和工具提示中的数据集标签
是否有单独堆叠组的解决方法?
谢谢!
您对文档所说的是正确的,我正在尝试做同样的事情。我以这个为例,它应该可以工作,根据 link : http://www.chartjs.org/docs/latest/charts/bar.html 在我的 .ts 中:
public barChartData:any[]=[
{data: [65, 59, 80, 81, 56, 55, 40], label: 'Series A', stack: '1'},
{data: [28, 48, 40, 19, 86, 27, 90], label: 'Series B', stack: '1'},
{data: [42, 24, 71, 14, 31, 49, 30], label: 'Series C', stack: '2'}
];
public barChartLabels:string[] = ['2006', '2007', '2008', '2009', '2010', '2011', '2012'];
public barChartOptions:any = {
responsive: true,
scales:{
xAxes:[{
stacked:true
}],
yAxes:[{
stacked:true
}]
}
};
public barChartType:string = 'bar';
在我的 HTML 中:
<canvas id="chart1" baseChart
[datasets]="barChartData"
[labels]="barChartLabels"
[options]="barChartOptions"
[chartType]="barChartType"
(chartHover)="chartHovered($event)"
(chartClick)="chartClicked($event)"></canvas>
我找到了这个 chart.js 的分组堆栈栏示例。不幸的是它是普通的 JS:https://github.com/chartjs/Chart.js/blob/master/samples/charts/bar/stacked-group.html
编辑: 使用我上面的代码并执行 npm install chart.js@2.6 --save -> 它直接对我有用
我在检查创建条形图时是否检查了堆栈时找到了这个解决方案。它们不在我当前的版本中。
所以我发现这样做的方法是取消堆叠 yaxis,然后将堆栈添加到数据集 属性,如下所示:
{
data: [],
label: 'dataset 1',
type: 'bar',
yAxisID: 'bar-y-axis1',
stack: '1'
},
{
data: [],
label: 'dataset 3',
type: 'bar',
yAxisID: 'bar-y-axis1',
stack: '1'
},
{
data: [],
label: 'dataset 4',
type: 'bar',
yAxisID: 'bar-y-axis1',
stack: '1'
},