我正在尝试使用Chart.js为极区图创建曲线标签,如下所示:
我已经找到了this issue,他们在那里讨论它,但它似乎还没有一个答案。
到目前为止,我只能在图表的侧面显示标签,但不能以曲线方式显示:
Chart.register( ChartDataLabels );
const config = {
"type": "polarArea",
"data": {
"labels": [
"aaaaaaaa",
"bbbbbbbb",
"cccccccc",
"dddddddd",
"eeeeeeee",
"ffffffff",
"gggggggg",
"hhhhhhhh"
],
"datasets": [
{
"data": [
80,
40,
54,
62,
71,
45,
50,
85
],
"backgroundColor": [
"#674ea7",
"#db4b4b",
"#2f2f6e",
"#3c1414",
"#fc3631",
"#556b2f",
"#820000",
"#76a5af"
]
}
]
},
"options": {
"responsive": true,
"scales": {
"r": {
"angleLines": {
"display": true
},
"ticks": {
"display": false
},
"pointLabels": {
"display": true,
"centerPointLabels": true,
"font": {
"size": 14
}
}
}
},
"scale": {
"min": 0,
"max": 100,
"ticks": {
"display": false,
"beginAtZero": true
}
},
"plugins": {
"legend": {
"position": 'top',
},
"datalabels": {
"formatter": (value, context) => value + '%',
"color": "#ffffff"
}
}
}
}
const ctx = document.getElementById( 'graph' ).getContext( '2d' );
const chart = new Chart( ctx, config );
有人知道怎么做吗?
2条答案
按热度按时间gstyhher1#
您可以使用chartjs-plugin-labels来实现这一点
您可以看到working example here
关键是在插件选项中将
arc
设置为true
,将position
设置为outside
。例如:gfttwv5a2#
Fraser建议使用chartjs-plugin-labels。问题是,
chartjs-plugin-labels
已不再维护,并且不支持Chart.js v3。因此,您应该使用chart.js-plugin-labels-dv。此插件是从
chartjs-plugin-labels
派生而来,并适用于Chart.js v3。请注意,
labels.render
可确保仅为外部(辅助)数据集绘制数据标签。请看一看您修改后的可运行代码,看看它是如何工作的。
第一个