首页 > 解决方案 > 有没有办法让 Y 轴不适应谷歌柱形图的加载表?

问题描述

我目前正在致力于一个信息安全项目,在该项目中加载虚构数据并使用谷歌图表进行可视化。但是,在加载柱形图时,Y 轴以不需要的方式加载,我尝试了多次测试来确定问题出在哪里,但到目前为止还没有运气

我有 3 个表,每个表有 2 个属性。这些表是:“Phishing”、“SpearPhishing”和“RogueRouter”。它们都有两列,我想计算并显示属性名称,例如“好奇”和“意图”。

正在使用以下 SQL 语法:

SELECT 'Phishing' as method, count(check_opened) as curious, count(clicked_link)
as intent FROM Phishing UNION ALL SELECT 'Spear Phishing' as method, count(check_opened)
as curious, count(clicked_link) as intent FROM SpearPhishing UNION ALL 
SELECT 'Rogue Router' as method, count(page_load) as curious, count(internet_intent)
as intent FROM RogueRouter GROUP BY method

在 Phpmyadmin 中,运行时会显示以下内容:

在此处输入图像描述

但是,在我的 PHP 文件中使用以下代码将数据显示为列:

<?php  
 $connect = mysqli_connect("localhost", "isprojectdbadmin", "isproject!23", "ISProjectDB");  
 $query = [THE SQL QUERY MENTIONED ABOVE]
 $result = mysqli_query($connect, $query);
 ?>

<html>
  <head>
    <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([
          ['method', 'curious', 'intent'],

         <?php
          while($row = mysqli_fetch_array($result))
          {
             echo "['".$row['method']."', '".$row['curious']."', '".$row['intent']."'], ";
          }
         ?>

        ]);
        };

        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>
</html>

它显示以下内容:

在此处输入图像描述

Y 轴的值不是从 0 到 40 的梯度,我不知道问题出在哪里。非常感谢任何帮助,甚至一些轻微的建议也会有所帮助,因为我感觉有点卡住了。此外,正如我在本文开头提到的那样,这个项目背后没有任何恶意活动,恰恰相反。

标签: phphtmlsqlchartsvisualization

解决方案


我自己解决了!问题是用于读取行的 PHP 语法。

以下行:

echo "['".$row['method']."', '".$row['curious']."', '".$row['intent']."'], ";

被替换为:

echo "['".$row["method"]."', ".$row["curious"].", ".$row["intent"].", ],";

推荐阅读