我想知道有没有一种方法可以控制显示多少标签 - 我知道有stepSize
功能,但这是数字。我正在寻找类似interval:3
的内容,因此它会显示图表上的每个第三个标签。
options: {
scales: {
xAxes: [{
ticks: {
beginAtZero:true,
max: 100
}
}],
yAxes: [{
ticks: {
}
}]
}
}
这就是我渲染图表的方式:
html:
<div class="chart-container" style="position: relative; height:20vh; width:40vw">
<canvas id="chartGraph" baseChart [colors]="colorsOverride" [datasets]="barChartData" [labels]="barChartLabels" [options]="barChartOptions" [legend]="false" [chartType]="barChartType">
</canvas>
</div>
在我的组件中。我有:
barChartOptions: any = {
scaleShowVerticalLines: false,
responsive: true,
scales: {
xAxes: [{
ticks: {
beginAtZero:true,
max: 100
}
}],
yAxes: [{
ticks: {
}
}]
},
tooltips:{
mode: 'point'
}
};
barChartLabels: string[] = [];
barChartType: string = 'horizontalBar';
barChartLegend: boolean = false;
barChartData: any[] = [];
data: any;
colorsOverride: Array<Color> = [{
backgroundColor: '#6aaf6a',
hoverBackgroundColor: 'purple'
}];
getChartData(link:string){
this.service.getQuery(link).subscribe(
data => {
this.data = data;
this.barChartLabels = this.data.map(x => x.display);
this.chartData = this.data.map(x => x.value);
this.barChartData = [{data: this.chartData, label:'sample' }];
}
);
}
答案 0 :(得分:0)
来源:Limit labels number on Chart.js line chart
由George提供的示例将所有其他标签空白。
var options = {
scales: {
xAxes: [{
afterTickToLabelConversion: function(data){
var xLabels = data.ticks;
xLabels.forEach(function (labels, i) {
if (i % 2 == 1){
xLabels[i] = '';
}
});
}
}]
}
}
要保留X轴上的第一个值,然后保留第四,第八个,依此类推,可以将if语句更改为:
if (i % 4 != 0){
xLabels[i] = '';
}
该解决方案也适用于yAxes选项。变量名称xLabels不是chartjs的一部分,对其进行更改不会造成任何损害。