有没有人遇到从chartjs
图表中删除填充(或边距?)的问题?
下面是我的代码(在jsFiddle中)...和图像(注意底部?UGLY酱)。
这是一个突出问题的JSFiddle。请注意白框底部的填充。 https://jsfiddle.net/mre1p46x/
答案 0 :(得分:1)
当标签数量为3(fit
时,您可以使用beforeFit
和afterFit
处理程序围绕fit
方法包含一些逻辑来纠正此填充函数从假设最大半径为图表高度的一半开始。对于三角形,我们实际上有更多的空间)
我们所做的就是缩放height
属性来补偿这个假设,就像这样
...
options: {
scale: {
beforeFit: function (scale) {
if (scale.chart.config.data.labels.length === 3) {
var pointLabelFontSize = Chart.helpers.getValueOrDefault(scale.options.pointLabels.fontSize, Chart.defaults.global.defaultFontSize);
scale.height *= (2 / 1.5)
scale.height -= pointLabelFontSize;
}
},
afterFit: function (scale) {
if (scale.chart.config.data.labels.length === 3) {
var pointLabelFontSize = Chart.helpers.getValueOrDefault(scale.options.pointLabels.fontSize, Chart.defaults.global.defaultFontSize);
scale.height += pointLabelFontSize;
scale.height /= (2 / 1.5);
}
},
...
缩放因子2 / 1.5
很容易理解
h = distance from center of triangle to a corner
= h + distance from center of triangle to a side
= h + h * sin 30
= 1.5 h
= chart height / 2
我们想用r来缩放它,这样
1.5 * chart height / 2 * r = chart height
这给了我们
r = 2 / 1.5