2012-12-17 42 views
1

我需要從文本文件中讀取數據,有很多行可以加載到highchart,但是如果我把它放在多行中,它將顯示雜亂的文本 please see this link。我不想這樣,我想如果在文本文件中有超過20行,它應該顯示2或3高圖形圖形,使文本很容易看到。我有PHP代碼和腳本代碼如下:從文本文件加載數據到HIGHCHART圖形使用PHP

<?php 
      $PMTA_DATE = date("Y-m-d"); 
      $PMTA_FILE = file_get_contents("../stats_domain_emetteur.switchcall.com.".$PMTA_DATE.".txt"); 
      $lineFromText = explode("\n", $PMTA_FILE); 
      //$number_bar_charts = 12; 
      $row = 0; 
      $cate = ""; 
      $total =""; 
      $fail = ""; 
      $mailSuc = ""; 
      $title = ""; 
      foreach($lineFromText as $line){ 
        // if($row < $number_bar_charts){ 
        $words = explode(";",$line); 
        $dateTime .= ','.$words[0]; 
        if($title == ""){ 
         $title = $words[0]; 
        } 
        $cate .= ','."'$words[5]'"; 
        $total .= ','.$words[6]; 
        $fail .= ','.$words[7]; 
        $mailSuc .= ','.((int)$words[6] - (int)$words[7]);       
        $row++; 
     // } 
    } 

?> 
<!DOCTYPE HTML> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>Colunm Stack Percent Chat</title> 
    <script type="text/javascript" src="js/jquery.min.js"></script>   
<script type="text/javascript">  
$(function() { 
var chart; 
$(document).ready(function() { 
    chart = new Highcharts.Chart({ 
     chart: { 
      renderTo: 'PMTA4', 
      type: 'column' 
     }, 
     title: { 
      text: 'PMTA4 - Unitead.info -<?php echo $title;?>' 
     }, 
     xAxis: { 
      categories: [<?php echo substr($cate,1);?>] 
     }, 
     yAxis: { 
      min: 0, 
      title: { 
       text: '% envoi' 
      } 
     }, 
     tooltip: { 
      formatter: function() { 
       return ''+ 
        this.series.name +': '+ this.y +' ('+ Math.round(this.percentage) +'%)'; 
      } 
     }, 
     plotOptions: { 
      column: { 
       stacking: 'percent' 
      } 
     }, 
      series: [{ 
      name: 'Total mail succesful', 
      data: [<?php echo substr($mailSuc,1);?>] 
     }, { 
      name: 'Total mail fail', 
      data: [<?php echo substr($fail,1);?>] 
     }] 
    }); 
}); 

}); 
    </script> 

</head> 
<body> 
<script src="js/highcharts.js"></script> 
<script src="js/modules/exporting.js"></script> 

<div id="PMTA4" style="min-width: 400px; height: 200px; margin-top:10px;"></div> 

</body> 

</html> 

我不知道如何解決這個問題,任何人都可以幫助我,謝謝。

+0

u能約顯示器2或highchart裝置3的圖形解釋? – muthu

+0

意思是說:如果我在文本文件中有35行,那麼在第一個高圖中的第一個(1)應該顯示13行,我的意思是13個條形圖和第二個高圖應該顯示13線和左側放入第三(3)高圖。 –

+0

我認爲將它分成2-3個圖表不會是一個好的解決方案,想象你需要刷新或更新數據,你必須爲每個圖表做。看看我的解決方案,可能其中一個將是一個很好的解決方案。 –

回答

1

如果你看看參考資料,你會看到,你可以風格標籤

使用staggerLines在多行顯示標籤,但這不是一個好方法,你可以看到爲什麼我的演示。

xAxys: { 
    labels: { 
     staggerLines: 10 
    } 
} 

demo

或者你可以嘗試rotate他們。

xAxys: { 
    labels: { 
     rotate: 90, // you can use 45 or 60 for a better readability 
     align: 'left' 
    } 
} 

demo

參考:

+0

非常感謝你的回答,這是很好的解決方案,:) –

+0

@MalyProlepsys不客氣:) –