PHP — Отображение двух массивов на одной линейной диаграмме

#php #graph #charts #linechart

#php #График #Диаграммы #линейная диаграмма

Вопрос:

У меня есть 2 массива;

 x = 800,1650,2450,3200,4150,5250,6200,7150,8000

y = 800,850,800,750,950,1100,950,950,850
  

Я хочу показать их на одной линейной диаграмме. ‘Array x’ будет моей осью X, а ‘Array y’ будет моей осью Y.

Также я объединил эти 2 массива в один массив,

 $arrgraph = array_combine($y, $x);
  

Если я могу показать это на своей диаграмме, это тоже нормально.

Я новичок в php, я искал, но не смог найти, как это сделать. Все примеры касаются только одного массива. Кто-нибудь может мне помочь по этому поводу? Или я могу создать эту диаграмму с помощью HTML?

Я хочу, чтобы мой график выглядел следующим образом

Спасибо!

Комментарии:

1. В PHP нет функции do_graph($x, $y); , вам нужно будет найти библиотеку для этого. Кроме того, получение рекомендаций по библиотекам не относится к теме StackOverflow.

2. Я понимаю, могу ли я сделать это с помощью HTML? Или мне тоже нужно найти библиотеку для этого?

Ответ №1:

Yoc может сделать это при поддержке библиотеки CanvasJS

 <!DOCTYPE HTML>
<html>
<head>  
  <script type="text/javascript">
  window.onload = function () {
    var chart = new CanvasJS.Chart("chartContainer",
    {
      title:{
      text: "Multi-Series Line Chart"  
      },
      data: [
      {        
        type: "line", //you can echo php array here as dataPoints variable
        dataPoints: [
        { x: 10, y: 21 },
        { x: 20, y: 25},
        { x: 30, y: 20 },
        { x: 40, y: 25 },
        { x: 50, y: 27 },
        { x: 60, y: 28 },
        { x: 70, y: 28 },
        { x: 80, y: 24 },
        { x: 90, y: 26}
      
        ]
      }
      ]
    });

    chart.render();
  }
  </script>
 <script type="text/javascript" src="https://canvasjs.com/assets/script/canvasjs.min.js"></script></head>
<body>
  <div id="chartContainer" style="height: 300px; width: 100%;">
  </div>
</body>
</html>  

Для получения более подробной информации посетите базовую многорядную диаграмму

Комментарии:

1. Спасибо за ответ! Но есть ли какой-либо способ, которым я могу это сделать, не вводя цифры вручную в точки данных? Могу ли я взять их непосредственно из массива (ов)?

2. посмотрите мой комментарий в коде «// вы можете отобразить массив php здесь как переменную DataPoints» вы можете создать массив DataPoint, используя foreach из php array