ChartJS:限制轴上标签的长度并在悬停时显示工具提示?

kri*_*ris 3 chart.js

所以问题是图表标签太长且动态。有没有办法设置标签长度限制并在悬停时显示工具提示?

           xAxes: [{
                stacked: type === 'stacked', 
                scaleLabel: {
                    display: true,
                    labelString: interval ? `${i18n.t('chart.time')} (${i18n.t('chart.' + interval)})` : field.key
                },
                ticks: {
                    autoSkipPadding: 11,
                    maxRotation: 90,
                    minRotation: 0
                }
            }]
Run Code Online (Sandbox Code Playgroud)

当前输出看起来像这样。

在此输入图像描述

当前解决方案 xD 只是将键修改为最大长度 18 并制作了静态排除列表。

    const excludes = ['maakond', 'Maakond', 'district', 'District',
                        'province', 'Province', 'county', 'County'];           

    data.district.data.forEach(el => {
                    excludes.forEach(ex => {
                        el.key = el.key.replace(ex, '');
                    });

                    if(el.key.length > 18) {
                        el.key = el.key.substring(0, 20);
                        el.key = el.key + '.';
                    }
                });
Run Code Online (Sandbox Code Playgroud)

Jef*_*ang 5

使用Chart.scaleService.updateScaleDefaults

Chart.scaleService.updateScaleDefaults('category', {
    ticks: {
        callback: function (tick) {
            return tick.substring(0, 3);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

并将此代码添加到您的xAxes选项中。

Chart.scaleService.updateScaleDefaults('category', {
    ticks: {
        callback: function (tick) {
            return tick.substring(0, 3);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)