我正在使用Ionic 3,正在显示条形图,并且需要在条形图的条形旁边显示数据标签,例如此问题how to display data values on Chart.js
我遵循了到目前为止找到的关于chartjs-plugin-datalabels的说明,但没有用,它没有在我的图表上显示任何数据标签。
我通过npm安装了chartjs和chartjs-plugin-datalabels,它们在我的package.json中看起来像这样
"chart.js": "^2.7.3",
"chartjs-plugin-datalabels": "^0.5.0",
我完成了导入操作,就像文档对https://chartjs-plugin-datalabels.netlify.com/guide/getting-started.html#integration所说的那样,但是导入行为
import { ChartDataLabels } from 'chartjs-plugin-datalabels';
在VSCode编辑器中显示为“已声明'ChartDataLabels',但从不读取其值”
我还在文档的“选项”中添加了“插件”参数,就像文档中所说的那样,但是仍然没有显示任何数据标签。
这是我的代码的一部分。
import { Component, ViewChild, ɵConsole } from '@angular/core';
import { IonicPage, NavController, NavParams, ModalController, App } from 'ionic-angular';
import { Chart } from 'chart.js';
import { ChartDataLabels } from 'chartjs-plugin-datalabels';
@ViewChild('barCanvas') barCanvas;
ionViewDidLoad() {
this.barChart = new Chart(this.barCanvas.nativeElement, {
type: 'bar',
data: {
labels: [..],
datasets: [
{
label: "Ok",
data: arrayOk,
backgroundColor: '#014582',
borderWidth: 1,
datalabels: {
align: 'end',
anchor: 'start'
}
},
{
label: "Not Okay",
data: arrayNotOk,
backgroundColor: '#777676',
borderWidth: 1,
datalabels: {
align: 'center',
anchor: 'center'
}
}],
},
options: {
plugins: {
datalabels: {
color: 'white',
display: function (context) {
return context.dataset.data[context.dataIndex] > 1;
},
font: {
weight: 'bold'
},
formatter: Math.round,
title: false
}
},
title: {
display: true,
position: "top",
text: "My Bar Chart with Datalabels",
fontSize: 18,
fontColor: "#111"
},
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}],
xAxes: [{
ticks: {
autoSkip: false
}
}]
},
legend: false
}
});
}
答案 0 :(得分:1)
尝试启用插件
var chart = new Chart(ctx, {
plugins: [ChartDataLabels],
options: {
// ...
}
})
答案 1 :(得分:1)
我通过添加一个属性并将其传递给类构造函数中的ChartLabel插件属性来解决我的问题。
import { Chart } from 'chart.js';
import { ChartDataLabels } from 'chartjs-plugin-datalabels';
export class Chart {
chartLabels: any;
constructor( ... ){
this.chartLabels = ChartDataLabels;
}
}