我需要使用 ChartJS 库为我的圆环图创建自定义图例。我已经使用 ChartJS 提供的默认图例创建了甜甜圈,但我需要进行一些修改。
我想拥有高于汽车名称的价值。另外我不喜欢粘性图例我想将它与甜甜圈分开,这样我就可以更改字体、框的样式(例如,在文本“Audi”旁边)
我知道有一些 Legend 生成器,但我不确定如何将它与 VueJS 一起使用 - 因为我使用 VueJS 作为框架
这就是我的传奇现在的样子 - http://imgur.com/a/NPUoi
我的代码:
从我导入甜甜圈组件的 Vue 组件:
<div class="col-md-6">
<div class="chart-box">
<p class="chart-title">Cars</p>
<donut-message id="chart-parent"></donut-message>
</div>
</div>
Javascript:
import { Doughnut } from 'vue-chartjs'
export default Doughnut.extend({
ready () {
Chart.defaults.global.tooltips.enabled = false;
Chart.defaults.global.legend.display = false;
this.render({
labels: ['Audi','BMW','Ford','Opel'],
datasets: [
{
label: 'Cars',
backgroundColor: ['#35d89b','#4676ea','#fba545','#e6ebfd'],
data: [40, 30, 20, 10]
}
]
},
{
responsive: true,
cutoutPercentage: 75,
legend: {
display: true,
position: "right",
fullWidth: true,
labels: {
boxWidth: 10,
fontSize: 14
}
},
animation: {
animateScale: true
}
})
}
});
原文由 Denis Lapadatovic 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在尝试理解文档时遇到了同样的问题,这个链接可能会阐明自定义图例的过程:
https://codepen.io/michiel-nuovo/pen/RRaRRv
诀窍是跟踪回调以构建您自己的 HTML 结构并将这个新结构返回给 ChartJS。
在选项对象内部:
其次,您需要一个容器来插入新的 html,并使用 myChart.generateLegend() 方法来获取自定义的 html:
之后,如果需要,跟踪事件:
我发现的另一个解决方案,如果您不需要更改图例中的 HTMl 结构,您可以在图例容器中插入相同的 HTML 并通过 CSS 对其进行自定义,请查看另一个链接:
http://jsfiddle.net/vrwjfg9z/
希望对你有效。