ChartJS 我想使用图表js制作一个目标值为60的堆叠条形图

u59ebvdq  于 2022-11-06  发布在  Chart.js
关注(0)|答案(1)|浏览(224)

我想用chartjs创建一个条形图,它将显示达到60还需要多少,这将在上面的红色条中显示。下面将用蓝色显示当前数量。假设我必须达到60,而当前值是40,条形图应该用红色显示还需要20才能达到60。如果达到60,上面不应该有任何红条。2有什么办法可以做到这一点吗?

  1. (function() {
  2. var ctx = document.getElementById("mychart");
  3. var datas = {
  4. labels: ['Passed', 'Failed', 'In Progress'],
  5. datasets: [{
  6. label: 'Data',
  7. data: [10, 5, 80],
  8. backgroundColor: [
  9. "green",
  10. "red",
  11. "yellow"
  12. ],
  13. }, ]
  14. };
  15. var chr = new Chart(ctx, {
  16. data: datas,
  17. type: 'bar'
  18. });
  19. })();
  20. <div style="width: 500px;height: 300px">
  21. <canvas id="mychart"></canvas>
  22. </div>
nfg76nw0

nfg76nw01#

是的,您可以在将其发送到chart.js以绘制图表之前简单地计算它:

  1. (function() {
  2. const ctx = document.getElementById("mychart");
  3. const datas = {
  4. labels: ['Passed', 'Failed', 'In Progress'],
  5. datasets: [{
  6. label: 'Data',
  7. data: [10, 5, 80],
  8. backgroundColor: [
  9. "green",
  10. "red",
  11. "yellow"
  12. ],
  13. }, ]
  14. };
  15. const newData = datas.datasets[0].data.map(e => (e >= 60 ? 0 : 60 - e))
  16. datas.datasets.push({
  17. label: 'extra',
  18. backgroundColor: 'red',
  19. data: newData
  20. })
  21. const chr = new Chart(ctx, {
  22. data: datas,
  23. type: 'bar'
  24. });
  25. })();
  26. <div style="width: 500px;height: 300px">
  27. <canvas id="mychart"></canvas>
  28. </div>
展开查看全部

相关问题