[PHP-users 27839] JpGraphにおける、軸の最大値と最小値指定

naya SNA02388 @ nifty.com
2005年 12月 14日 (水) 12:16:16 JST


こんにちは。nayaと申します。

JpGraphの散布図で、X軸 and/or Y軸の最大値と最小値の指定で困っているので
すが、下記の点につき、お心当たりがあったらアドバイスお願いします。まず、

$graph->SetScale("linlin"); // XもYも自動スケール
$graph->SetScale("linlin",0,100); // Y最小値,Y最大値のみ指定
$graph->SetScale("linlin",0,100,0,200); //Y最小値,Y最大値,X最小値,X最大値を指定

と指定できるようですが、これですと「Y軸は自動でX軸だけは指定」ができない
ように見受けます。この点、日本語マニュアルにも明記なかったので、勘で

$graph->SetScale("linlin",auto,auto,0,200);

などとしてみたら、希望する動作が得られました。しかし、少し凝って次のサン
プル(1)(2)を試すと、いずれも「最大値は最小値より大きくないといけない」と
エラーになります。
Graph::SetScale(): Specified Max value must be larger than the specifired Min value.

ただし、(2)の方については、本番環境では下記サンプルと同じデータ、および
同じスケール(1000,auto,auto,auto)という組み合わせでは、
Fatal error: Maximum execution time of 60 seconds exceeded in /usr/.../jpgraph.php on line xxx.
とタイムオーバーになり、エラー内容が異なります(サンプル(2)では再現せず)。

わたしの希望は、サンプル(1)も(2)も最小値は指定、最大値は自動判定して欲し
いというものですが、何か誤解してますでしょうか?よろしくお願い致します。

<?php
include ("../../JpGraph/jpgraph.php");
include ("../../JpGraph/jpgraph_scatter.php");

# サンプル(1)
$axis_x_min = 10;		//X最小値
$axis_x_max = "auto";	//X最大値
$axis_y_min = "auto";	//Y最小値
$axis_y_max = "auto";	//Y最大値

# サンプル(2)
//$axis_x_min = 1000;	//X最小値
//$axis_x_max = "auto";	//X最大値
//$axis_y_min = "auto";	//Y最小値
//$axis_y_max = "auto";	//Y最大値

$datax = array(10000,3400,4000,4500,8000,6000,6000,10000,7000);
$datay = array(3.56,3.98,4.05,3.74,3.87,4.12,6.19,6.17,3.51);
$graph = new Graph(800,600,"auto");
$graph->SetScale("linlin",$axis_y_min,$axis_y_max,$axis_x_min,$axis_x_max);
$sp1 = new ScatterPlot($datay,$datax);
$graph->Add($sp1);
$graph->Stroke();
?>

環境:
サーバー:FreeBSD 4.7、PHP4.3.11

--
naya,
SNA02388 @ nifty.com



PHP-users メーリングリストの案内