圆环图中的小值不可见 - Chartjs

Adr*_*rug 1 javascript charts chart.js

对于圆环图类型,小数据不可见。我可以在不更改标签值的情况下调整它的大小吗? 展示

我的图表选项:

options: {
    cutoutPercentage: 65,
    maintainAspectRatio: false,
    legend: {
        display: false
    },
    plugins: {
        datalabels: {
            display: false
        }
    },
    tooltips: {
        enabled: true,
        mode: 'nearest'
    },
     scales: {
        yAxes: [{
            ticks: {
                max: 5,
                min: 0,
                stepSize: 0.5
            }
        }]
    }

}
Run Code Online (Sandbox Code Playgroud)

示例:http : //jsfiddle.net/Lkya2tqb/

Adr*_*rug 6

我将数据集转换为百分比并将小值四舍五入为 1。

var seriesData = [1,210,215];
var total = seriesData.reduce((a,v) => a + v);
var inPercent = seriesData.map(v => Math.max(v / total * 100, 1)); 
Run Code Online (Sandbox Code Playgroud)

为工具提示创建回调。

tooltips: {
  callbacks: {
    label: function(tooltipItem, data) {
      var value = seriesData[tooltipItem.index];
      var label = data.labels[tooltipItem.index];
      return `${label}: ${value}`;
    }
  }
Run Code Online (Sandbox Code Playgroud)

var seriesData = [1,210,215];
var total = seriesData.reduce((a,v) => a + v);
var inPercent = seriesData.map(v => Math.max(v / total * 100, 1)); 
Run Code Online (Sandbox Code Playgroud)
tooltips: {
  callbacks: {
    label: function(tooltipItem, data) {
      var value = seriesData[tooltipItem.index];
      var label = data.labels[tooltipItem.index];
      return `${label}: ${value}`;
    }
  }
Run Code Online (Sandbox Code Playgroud)

  • 很好的解决方案!我的小编辑:如果seriesData中有0,它将有1%的切片。要修复它: var inPercent = seriesData.map(v => v ? Math.max(v / Total * 100, 1) : v) (2认同)