Chart.js — добавить градиент к фону линейного графика

Я хочу создать линейную диаграмму следующим образом:

Но я не знаю, как добавить градиент к фону. На данный момент у меня есть код для правильного отображения строки. Это код для моей диаграммы:

     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
      });
    }
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
124
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

backgroundColor с createLinearGradient здесь должно помочь. backgroundColor правильно воспринимает различные типы цветов. Вам нужно создать градиент и указать то же самое.

Создали образец фрагмента для повторного использования вашего кода. Следуйте строкам 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/[email protected]"></script>
<canvas id = "myChart"></canvas>

Надеюсь, поможет. Обращайтесь за любыми сомнениями/разъяснениями.

Другие вопросы по теме