2012-03-13 180 views
0

我嘗試解決jpGraph.As一個問題,你看我這圖的上方和x軸由times.But的也有像20 30 40 50 60號碼可以隱藏呢?有沒有辦法做到這一點?jpgraph的與x軸

這是我的代碼

<?php // content="text/plain; charset=utf-8" 
require_once ('jpgraph.php'); 
require_once ('jpgraph_line.php'); 

ini_set("display_errors","off"); 
$getJson = file_get_contents("http://borsa.doviz.com/hisse_grafik_ajax/XU100/hisse/minute/json",false); 

$j = json_decode($getJson); 
$i = 0; 
$datay1 = array(); 
$datay2 = array(); 
$max = 0; 
foreach($j as $result) 
{ 
    $datay1[]=$result->KAPANIS; 
    $arr = explode(" ",$result->TARIH); 
    $arr2 = explode(":",$arr[1]); 
    $datay2[]=$arr2[0] . ":" . $arr2[1]; 
    if($arr[0] > $max) 
     $max = $arr[0]; 
} 


// Setup the graph 
$graph = new Graph(450,300); 
$graph->SetScale('intlin',0,0,0,70); 


$theme_class= new UniversalTheme; 
$graph->SetTheme($theme_class); 




$graph->SetBox(false); 
$graph->yaxis->HideLine(false); 
$graph->yaxis->HideTicks(false,false); 


// For background to be gradient, setfill is needed first. 
$graph->ygrid->SetFill(true,'#[email protected]','#[email protected]'); 
$graph->SetBackgroundGradient('#F0F8FF', '#FFFFFF', GRAD_HOR, BGRAD_PLOT); 

for($i = 0; $i < sizeof($datay2); $i++) 
{ 
    if($datay2[$i] == ":") 
     $datay2[$i] = ""; 
} 





$graph->xaxis->SetTickLabels($datay2); 
$graph->xaxis->HideLastTickLabel(); 

for($i = 0; $i < sizeof($datay2); $i++) 
{ 
    if($datay2[$i] == ":") 
     $datay2[$i] = ""; 
} 





// Create the line 
$p1 = new LinePlot($datay1); 
$graph->Add($p1); 



$p1->SetFillGradient('#00FF7F','#FFFFFF'); 
$p1->SetColor('#aadddd'); 



// Output line 
$graph->Stroke(); 

?> 

enter image description here

回答

1

我真的花我的時間來解決這個問題。 我首先找到名爲jpgraph的類。

發現這個地方

// ticks_label has an entry for each data point and is the array 
       // that holds the labels set by the user. If the user hasn't 
       // specified any values we use whats in the automatically asigned 
       // labels in the maj_ticks_label 
       if (isset($this->ticks_label[$i * $m])) { 
        $label = $this->ticks_label[$i * $m]; 
       } else { 
        if ($aAbsLabel) { 
         $label = abs($this->scale->ticks->maj_ticks_label[$i]); 
        } else { 
         $label = $this->scale->ticks->maj_ticks_label[$i]; 

,並添加

if($label == 60) 
           $label = ""; 
         elseif ($label == 50) 
          $label = ""; 
         elseif ($label == 40) 
          $label = ""; 
          elseif ($label == 30) 
          $label = ""; 
          elseif ($label == 20) 
          $label = ""; 
          elseif ($label == 10) 
          $label = "";