2013-01-10 303 views
2

我該如何告訴jpgraph每月顯示x軸刻度?我有兩個圖表,一個顯示1年的結果,另一個顯示從頭到尾的結果。在年份圖上,它顯示了每週的結果,我喜歡它,但在顯示更大的日期範圍的情況下(在我的情況下從1.4.2010。直到10.1.2013。它只顯示每一年打勾,所以我在1.4.2010打勾,1.4 0.2011,...的代碼jpgraph x軸刻度

重要部分,其中i定義x軸屬性:

$graph->xaxis->SetTickLabels($timestamp); 
$graph->xaxis->scale->SetDateAlign(MONTHADJ_1); 
$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,8); 
$graph->xaxis->SetLabelAngle(-45); 
$graph->xaxis->SetLabelMargin(2); 
$graph->xaxis->SetLabelAlign('left','top'); 
$graph->xaxis->SetLabelFormatString('d.m.Y',true); 
$graph->xaxis->HideFirstLastLabel(); 

時間戳陣列是從MySQL日期轉換Unix時間戳值和時間戳是正確的I檢查它們。這個圖表也很好,只有我想要在x軸上有更多的蜱蟲。

+0

有一個「解決方法」,計算30天內的秒數,並使用$ graph-> xaxis-> scale-> ticks-> Set(2592000),但因爲月份有或多或少的30天,我沒有相同的日子在x軸上。 –

+0

在DataScaleUtils庫中找到了我的答案。現在一切正常 –

回答

2

要回答我自己的問題,並關閉它,這裏是我添加的(與舊的xaxis p roperties):

require_once ('jpgraph/jpgraph_utils.inc.php'); 

$dateUtils = new DateScaleUtils(); 
list($tickPos,$minTickPos) = $dateUtils->getTicks($timestamp,DSUTILS_MONTH1); 

$graph->xaxis->SetTickPositions($tickPos,$minTickPos); 
$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,8); 
$graph->xaxis->SetLabelAngle(-45); 
$graph->xaxis->SetLabelMargin(2); 
$graph->xaxis->SetLabelAlign('left','top'); 
$graph->xaxis->SetLabelFormatString('d.m.Y',true); 
$graph->xaxis->HideFirstLastLabel(); 

另外我改變圖的比例爲intlin,它是datlin之前。