【问题标题】:Chart.js - Add gradient to line chart backgroundChart.js - 向折线图背景添加渐变
【发布时间】:2020-12-24 10:48:16
【问题描述】:

我正在寻找这样的折线图:

但我不知道如何将渐变添加到背景中。此时我有代码可以正确显示该行。这是我图表的代码:

     const ctx = document.getElementById("myChart");
      var speedData = {
        labels: [
          "Jan",
          "Feb",
          "Mar",
          "Apr",
          "May",
          "Jun",
          "Jul",
          "Aug",
          "Sep",
          "Oct",
          "Nov",
          "Dec"
        ],
        datasets: [
          {
            label: "Car Speed",
            data: this.car.energyConsumption,
            lineTension: 0,
            pointBackgroundColor: "#131921",
            pointBorderColor: "white",
            pointBorderWidth: 3,
            pointRadius: 6,
            borderColor: "white"
          }
        ]
      };

      var chartOptions = {
        legend: {
          display: false
        }
      };
      new Chart(ctx, {
        type: "line",
        data: speedData,
        options: chartOptions
      });
    }

【问题讨论】:

    标签: javascript chart.js gradient


    【解决方案1】:

    backgroundColorcreateLinearGradient 应该在这里有所帮助。 backgroundColor 正确地接受不同类型的colors。您需要创建一个渐变并指定它。

    为您重复使用代码创建了一个示例 sn-p。按照第 4-7 行和第 34 行。

    const ctx = document.getElementById("myChart");
    
    // Create gradient here
    const ctxForGradient = document.getElementById('myChart').getContext('2d');
    const gradientFill = ctxForGradient.createLinearGradient(0, 500, 0, 50);
    gradientFill.addColorStop(0, "rgba(255, 0, 0, 0.9)");
    gradientFill.addColorStop(1, "rgba(0, 0, 255, 0.9)");
    
    var speedData = {
      labels: [
        "Jan",
        "Feb",
        "Mar",
        "Apr",
        "May",
        "Jun",
        "Jul",
        "Aug",
        "Sep",
        "Oct",
        "Nov",
        "Dec"
      ],
    
      datasets: [{
        label: "Car Speed",
        data: [7, 9, 5, 8, 9, 7, 6, 10, 4, 5, 7, 8, 9],
        lineTension: 0,
        pointBackgroundColor: "#131921",
        pointBorderColor: "white",
        pointBorderWidth: 3,
        pointRadius: 6,
        borderColor: "white",
        backgroundColor: gradientFill // Fill gradient here
      }]
    };
    
    var chartOptions = {
      legend: {
        display: false
      }
    };
    new Chart(ctx, {
      type: "line",
      data: speedData,
      options: chartOptions
    });
    <script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
    <canvas id="myChart"></canvas>

    希望对您有所帮助。如有任何疑问/澄清,请回复。

    【讨论】:

      猜你喜欢
      • 2014-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2015-02-21
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多