2012-03-13 20 views
0

私はjpGraphの問題を解決しようとしています。上記のように私のグラフとx軸はtimesで構成されています。しかし、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 = ""; 
を追加