Гугл-график с осью Y в странном порядке - PullRequest
1 голос
/ 23 марта 2020

Я хочу сделать диаграмму, показывающую данные, которые я имею из базы данных. Но когда отображается график, отображается ось y со значениями, связанными с номером id. (Посмотрите на картинку) Код показан ниже.

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {'packages':['bar']});
      google.charts.setOnLoadCallback(drawChart);

      function drawChart() {
        var data = google.visualization.arrayToDataTable([['id', 'temperature'],

        <?php
            $connection=mysqli_connect('remotemysql.com','dbname','dbpass','dbuid');
            $query="SELECT * FROM `table` WHERE 1";
            $result=mysqli_query($connection, $query);
            if(! $result ) {
              die('Could not connect: ' . mysqli_error());
            }

            if(mysqli_num_rows($result)>0){
                $number = mysqli_num_rows($result);
                while($row=mysqli_fetch_array($result)){

              echo "['".$row['id']."','".$row['temperature']."']";
              if ($number>1)
                echo ",";
            }
            echo "]);";
            }

          ?>

        var options = {
          chart: {
            title: 'Weather station info',
          }
        };

        var chart = new google.charts.Bar(document.getElementById('columnchart_material'));

        chart.draw(data, google.charts.Bar.convertOptions(options));
      }
    </script>
    </head>
  <body>
    <div id="columnchart_material" style="width: 800px; height: 500px;"></div>
  </body>

Изображение диаграммы

Мой вопрос состоит в том, как упорядочить ось Y от низкой к высокой вместо того, чтобы принимать значения по мере их поступления

1 Ответ

0 голосов
/ 23 марта 2020

Вы можете попытаться принудительно привести числовые значения c к типизированным числовым данным c.

Вот непроверенное предложение (с моего мобильного телефона, дайте мне знать, если есть какие-либо опечатки).

  <?php
  $mysqli = new mysqli('remotemysql.com', 'dbname', 'dbpass', 'dbuid');
  $result = $mysqli->query("SELECT id, temperature FROM yourTemperatureTable");
  $array = $result->fetch_all(MYSQLI_ASSOC);
  if ($array) {
    array_unshift($array, ['id', 'temperature']);
    $json = json_encode($array, JSON_NUMERIC_CHECK);
    ?>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {'packages':['bar']});
      google.charts.setOnLoadCallback(drawChart);
      function drawChart() {
        let data = google.visualization.arrayToDataTable(<?php echo $json; ?>),
            options = {
              chart: {
                title: 'Weather station info',
              }
            },
            chart = new google.charts.Bar(document.getElementById('columnchart_material'));
            chart.draw(data, google.charts.Bar.convertOptions(options));
      }
    </script>
    <?php
  }
  ?>
</head>
<body>
  <div id="columnchart_material" style="width: 800px; height: 500px;"></div>
</body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...