谷歌图表缺少一个月的 xAxis 标签

时间:2021-01-20 05:24:22

标签: php mysql charts google-visualization

我有一个 Google 柱状图,它按预期工作,只是有些月份标签不会显示。所有月份都有数据,所以我很困惑为什么有些没有显示。由于我不是 mysql 或 php 方面的专家,我希望有人能指出我正确的方向。

看图片截图: Screen shot

   <?php
$connection = mysqli_connect('localhost', 'root', '', 'farmrex');
$result = mysqli_query($connection, "SELECT
   MONTHNAME(expense_date) AS month,
   SUM(cost) AS total
FROM
   expenses
WHERE
   expense_date > NOW() - INTERVAL 12 MONTH
GROUP BY
   YEAR(expense_date), MONTH(expense_date)");
//if($result){
//    echo "CONNECTED";
//}
?>

<!doctype html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Document</title>
   <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([
               ['Date', 'Expense Amount'],

               <?php

                   if(mysqli_num_rows($result)> 0){

                       while($row = mysqli_fetch_array($result)){

                           echo "['".$row['month']."', ".$row['total']."],";
                       }
                   }
               ?>

           ]);
           var options = {
               chart: {                    
                   title: 'Monthly Expenses',
                   subtitle: 'Last 12 months of expenses',
                   width: 5000,
                   height: 500
               },
               vAxis: {
         title: 'Expense Amount',
         format: '#,##0.00',
         format: 'currency'
       }
           };

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

           chart.draw(data, google.charts.Bar.convertOptions(options));
       }
   </script>

</head>
<body>

<section>
<div id="columnchart" style="width: 900px; height: 500px;"></div>
</section>


</body>
</html>

1 个答案:

答案 0 :(得分:0)

一切都好!我设法通过使用缩写的月份名称解决了这个问题。

改变:

MONTHNAME(expense_date) AS month,

到:

DATE_FORMAT(expense_date, '%b') AS month,
相关问题