【发布时间】:2021-11-03 10:35:39
【问题描述】:
我正在开发 Angular 版本 11.0.4,我正在使用 ng2-charts 版本 2.4.2。
我必须渲染基本的折线图,并带有一些自定义功能。
其中一项功能包括根据外部 API 值对一些网格线进行着色。
由于我还没有找到解决这个问题的好方法,我正在尝试这个: 在 LineChart Options 中,scales 中有 yAxes 对象。 有一系列回调(这里是文档https://www.chartjs.org/docs/next/axes/#callbacks),它在渲染后给了我刻度的值。根据这些值,我更新网格线的颜色值。
问题在于接口提供的每一个回调都会给出一系列值,这些值不是图表呈现的值。
这是我写的:
scales: {
...this.lineChartOptions.scales,
yAxes: [{
ticks: {
beginAtZero: true
}
afterTickToLabelConversion: (scale) => {
console.log(scale);
return scale;
}
}],
这是 console.log 打印的内容:
这就是图表呈现的内容:
如您所见,console.log 打印 从 18 到 0 的 10 个值。 该图表呈现从 19 到 17 的刻度值。
HTML 代码:
<canvas id="chartContainer" baseChart width="400" height="400" [datasets]="lineChartData" [labels]="lineChartLabels"
[options]="lineChartOptions" [colors]="lineChartColors" [legend]="lineChartLegend" [chartType]="lineChartType"
[plugins]="lineChartPlugins">
【问题讨论】:
-
我已经尝试了选项中的每个回调:afterUpdate、afterFit。每一个都给了我相同的值,但图表显示的值。
标签: angular chart.js ng2-charts