javascript - Chartjs 嵌套不同厚度的 donut 层

标签 javascript html css nested chart.js

如何创建具有不同厚度层的嵌套 donut ? Chartjs 只允许在 options 属性中定义 cutoutPercentage 并且所有层都由该值更改。我想要一个具有不同厚度层的嵌套 donut 。例如,在这个图表中,我想制作不同厚度的红色和蓝色图层。

var ctx = document.getElementById("chart");
var chart = new Chart(ctx, {
  type: 'doughnut',
  options: {
    cutoutPercentage: 75
  },
  data: {
    datasets: [{
        backgroundColor: [
          "red"
        ],
        data: [1]
      },
      {
        backgroundColor: [
          "blue"
        ],
        data: [1]
      }
    ]
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.bundle.js"></script>

<canvas id="chart"></canvas>

最佳答案

我找到了解决方案,方法是将两个圆环图叠加在一起。通过这种方式,我能够设置不同的 cutoutPercentage 值。在此示例中,红色和蓝色图层具有不同的厚度。

var ctx = document.getElementById("chart");
var chart = new Chart(ctx, {
  type: 'doughnut',
  options: {
    cutoutPercentage: 20
  },
  data: {
    datasets: [{
      backgroundColor: [
        "red"
      ],
      data: [1]
    }]
  }
});
var ctx2 = document.getElementById("chart2");
var chart2 = new Chart(ctx2, {
  type: 'doughnut',
  options: {
    cutoutPercentage: 90
  },
  data: {
    datasets: [{
      backgroundColor: [
        "blue"
      ],
      data: [1]
    }]
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.bundle.js"></script>

<div class="container" style="position:relative;  ">
  <canvas id="chart" style="position:absolute;"></canvas>
  <canvas id="chart2" style="position:absolute;"></canvas>
</div>

关于javascript - Chartjs 嵌套不同厚度的 donut 层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51108090/

相关文章:

相当于 :has() 的 Css

javascript - 是否可以像这样用 CSS 剪切 DIV 的一侧?

javascript - 如何根据初始配置设置属性?

JavaScript - 递归函数中的错误是什么?

javascript - 我无法将元素 move 到最后一个位置和第一个位置

javascript - jCarousel 的羽毛剪贴蒙版

javascript - 如何在搜索栏中添加 X 标签

html - 隐藏垂直滚动条同时保持可滚动

javascript - 在 X 轴刻度上呈现 HTML

html - CSS3 : Prevent transition-delay when transition is reversed