БлогNot. Javascript: как построить график функции на Chart.js

Javascript: как построить график функции на Chart.js

Сегодня для построения на Web-странице обычного графика функции одной переменной делать вот так (как 10 лет назад) или, тем более, вот так (как 20 лет назад, график без графики), уже не нужно, хотя те решения и красивые, особенно более старое :)

C помощью JQuery и библиотеки Chart.js проблему можно решить буквально за пару минут.

Ниже я приведу HTML- и JS-код с комментариями для типовой ситуации, когда нам нужно построить график функции, вписанный в контейнер на странице, имеющий заданный размер, то есть, вот в таком виде (скриншот):

график на Chart.js, показано наведение мыши на точку графика
график на Chart.js, показано наведение мыши на точку графика
<!-- Подключаем JQuery и Chart.js -->
<script type="text/javascript" 
 src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" 
 src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.bundle.min.js"></script>

<!-- Готовим контейнер для диаграммы -->
<div id="content" align="center">
 <canvas id="myChart" width="628" height="400"></canvas>
</div>

<script type="text/javascript">
 //Готовим диаграмму
 function Diagram () {
  var ctx = document.getElementById("myChart");
  var myChart = new Chart (ctx, {
   type: 'line',
   data: {
    labels: [], //Подписи оси x
    datasets: [
     {
      label: 'f(x)', //Метка
      data: [], //Данные
      borderColor: 'blue', //Цвет
      borderWidth: 2, //Толщина линии
      fill: false //Не заполнять под графиком
     }
     //Можно добавить другие графики
    ]
   },
   options: {
    responsive: false, //Вписывать в размер canvas
    scales: {
     xAxes: [{
      display: true
     }],
     yAxes: [{
      display: true
     }]
    }
   }
  });
  //Заполняем данными
  for (var x = 0.0; x<=2*Math.PI; x+=Math.PI/10) {
   myChart.data.labels.push(''+x.toFixed(2));
   myChart.data.datasets[0].data.push(f(x).toFixed(2));
  }
  //Обновляем
  myChart.update();

  function f(x) { //Вычисление нужной функции
   return Math.sin(x);
  }
 }

 //Ставим загрузку диаграммы на событие загрузки страницы
 window.addEventListener("load", Diagram); 
</script>
<noscript>
 <div align="center">
  Извините, для работы приложения нужен включённый Javascript
 </div>
</noscript>

17.06.2018, 18:56 [15076 просмотров]


теги: javascript графика ретро jquery

показать комментарии (2)