Chart.js:不遵守饼图的宽度和高度

少糖

我正在使用Chart.js创建饼图。我需要每个图表为76x76px。不幸的是,如果包装div和画布本身,则呈现的图表总是比其尺寸小一些。

如果检查FIDDLE中的图表,您会明白我的意思:该canvas元素具有固定的大小,但是图表本身并未完全填充它。

在此处输入图片说明

几乎好像为不存在的内容保留了最高利润。

编码:

的HTML

<div class="wrapper">
  <canvas id="myChart" width="76" height="76"></canvas>
</div>

JS

var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, {
    type: 'pie',
    data: {
        datasets: [{
            data: [30, 70],
            backgroundColor: [
                'green',
                'gray'
            ],
            borderWidth: 0
        }]
    },
    options: {
        tooltips: {
             enabled: false
        },
        events: []
    }
});

的CSS

.wrapper {
  width: 76px;
  height: 76px;
}

有什么想法可以让饼图填充76x76px画布吗?

安德烈亚斯

预留了额外的空间用于legend,默认情况下启用。只需禁用它,您就应该拥有图表的整个空间:

legend: {
  display: false
}

一个工作示例:

var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, {
  type: 'pie',
  data: {
    datasets: [{
      data: [30, 70],
      backgroundColor: [
        'green',
        'gray'
      ],
      borderWidth: 0
    }]
  },
  options: {
    tooltips: {
      enabled: false
    },
    legend: {
      display: false  // <- the important part
    },
    events: []
  }
});
.wrapper {
  width: 76px;
  height: 76px;
  border: 1px solid black; /* for demonstration purposes*/
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js"></script>
<div class="wrapper">
  <canvas id="myChart" width="76" height="76"></canvas>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章