javascript - Chart.js v2,从雷达图中删除填充/边距

标签 javascript jquery charts chart.js

有人遇到过从 chartjs 图表中删除填充(或边距?)的问题吗?

下面是我的代码(在 jsFiddle 中)...和图像(注意底部?丑陋的酱汁)。

这是一个突出显示该问题的 JSFiddle。请注意白色框底部的填充。 https://jsfiddle.net/mre1p46x/

enter image description here

最佳答案

您可以使用 beforeFitafterFit 处理程序围绕 fit 方法包装一些逻辑,以在标签数量增加时更正此填充。是 3(fit 函数首先假设最大半径为图表高度的一半。对于三 Angular 形,我们实际上有更多的空间)

我们所做的就是缩放 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很容易算出

  1. 其中h = 从三 Angular 形中心到 Angular 的距离
  2. 三 Angular 形的总高度= h + 三 Angular 形中心到边的距离 = h + h * sin 30 = 1.5 小时
  3. 当前 h = 图表高度/2
  4. 我们想按 r 缩放它,这样

    1.5 * 图表高度/2 * r = 图表高度

  5. 这给了我们

    r = 2/1.5

<小时/>

fiddle - https://jsfiddle.net/zqp525gf/

关于javascript - Chart.js v2,从雷达图中删除填充/边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36730861/

相关文章:

javascript - 告诉 typescript 不要将 ["default' ] 添加到新类

javascript - jQuery 计算表格

javascript - getJSON 方法不起作用

jquery - 在运行时更改 jQuery Mobile 按钮的字体大小

javascript - 如何在 JavaScript 中以增量方式调用数组的 INDEX 值

javascript - 使用 Mat datepicker 以多种颜色突出显示日期

javascript - 在 Promise 中设置属性后,Ember Controller 不刷新模板

php - 我如何使用 PHP 和 MySQL 转换或查询此 Jquery 数据,如表单 - 选择 - 选项示例

c# - wp7 上的折线图

javascript - ChartJS 在制作新图表时删除以前的图表