【问题标题】:How to create a gradient fill line chart in latest Chart JS version (3.3.2)?如何在最新的 Chart JS 版本(3.3.2)中创建渐变填充折线图?
【发布时间】:2021-06-02 20:17:55
【问题描述】:

我想知道如何在Chart JS version 3.3.2中创建渐变折线图,如下所示:

此StackOverflow question 已在近 6 年前得到答复。 2021年3.3.2版本的解决方案是什么?

我尝试了旧的解决方案无济于事:

代码:

    var ctx = document.getElementById('chart').getContext('2d');
    
    var gradient = ctx.createLinearGradient(0, 0, 0, 300);
        gradient.addColorStop(0, 'rgba(224, 195, 155, 1)');   
        gradient.addColorStop(1, 'rgba(100, 100, 0,0)');
        
    var myChart = new Chart(ctx, {
        type: 'line',
        data: {
            labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
            datasets: [{
                backgroundColor: gradient,
                    label: 'Numbers',
                data: [12, 19, 3, 5, 2, 3],
            }]
        },
        options: {
            scales: {
                y: {
                    beginAtZero: true
                }
            },
            tension: 0.3
        }
    });
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.3.2/dist/chart.min.js"></script>
<canvas id="chart" width="800" height="400"></canvas>

JSFiddle

【问题讨论】:

  • 这篇文章可能对你有所帮助:blog.vanila.io/…
  • @mpm 那篇文章没有帮助,那是关于 chart.js 版本 2,因为他已经指出该解决方案不适用于堆栈问题
  • 哦,对不起:(

标签: javascript chart.js


【解决方案1】:

你几乎在那里,在 v3 中默认折线图不填充所以你需要设置fill: true

例子

    var ctx = document.getElementById('chart').getContext('2d');

    var gradient = ctx.createLinearGradient(0, 0, 0, 300);
    gradient.addColorStop(0, 'rgba(224, 195, 155, 1)');
    gradient.addColorStop(1, 'rgba(100, 100, 0,0)');

    var myChart = new Chart(ctx, {
      type: 'line',
      data: {
        labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
        datasets: [{
          backgroundColor: gradient,
          label: 'Numbers',
          fill: true,
          data: [12, 19, 3, 5, 2, 3],
        }]
      },
      options: {
        scales: {
          y: {
            beginAtZero: true
          }
        },
        tension: 0.3
      }
    });
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.3.2/dist/chart.min.js"></script>
<canvas id="chart" width="800" height="400"></canvas>

【讨论】:

  • 完美运行。你是救命稻草
  • 如何在 React.js 中做到这一点?
  • 让它成为一个可脚本化的选项,在那里你会得到画布
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-16
  • 2018-01-17
  • 2011-11-26
  • 2017-06-15
  • 2023-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多