[PHP-users 27850] Re: JpGraphにおける、軸の最大値と最小値指定
TAKAGI Masahiro
matakagi @ osk2.3web.ne.jp
2005年 12月 16日 (金) 02:29:53 JST
高木です。
At Wed, 14 Dec 2005 12:16:16 +0900,
naya wrote:
>
> JpGraphの散布図で、X軸 and/or Y軸の最大値と最小値の指定で困っているので
> すが、下記の点につき、お心当たりがあったらアドバイスお願いします。まず、
>
JpGraph そのもの自体も PHP で書かれているわけですから、マニュアルを見
てもよくわからなかった場合は JpGraph のソースコードを読んでみるとヒン
トが得られるかもしれません。
> $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);
>
> などとしてみたら、希望する動作が得られました。しかし、少し凝って次のサン
たぶん、
$graph->SetScale("linlin","abc","abc",0,200);
とか
$graph->SetScale("linlin","tekitou","tekitou",0,200);
でも同じような動作になるのではありませんか?
> プル(1)(2)を試すと、いずれも「最大値は最小値より大きくないといけない」と
> エラーになります。
> Graph::SetScale(): Specified Max value must be larger than the specifired Min value.
>
jpgraph.php の 1200 行目あたりに Graph::SetScale() の定義があります。
function SetScale($aAxisType,$aYMin=1,$aYMax=1,$aXMin=1,$aXMax=1) {
$this->axtype = $aAxisType;
if( $aYMax < $aYMin || $aXMax < $aXMin )
JpGraphError::Raise('Graph::SetScale(): Specified Max value must be larger than the specified Min value.');
// 以下省略
}
この部分を見れば、どのような場合にエラーが出るのかがわかります。また、
引数を省略した場合のデフォルト値もわかるので、「この値を指定すれば自動
判定になるのかな?」と推測できます。
> わたしの希望は、サンプル(1)も(2)も最小値は指定、最大値は自動判定して欲し
> いというものですが、何か誤解してますでしょうか?よろしくお願い致します。
>
私自身 JpGraph を使い込んでいるわけでもないので断言はできないのですが、
JpGraph のソースをざっと見た限りでは「最大値・最小値のどちらか一方だけ
を自動判定する」ことはできなさそうですね。で、最大値と最小値に同じ値を
指定すれば自動判定になるのかな?
> <?php
> include ("../../JpGraph/jpgraph.php");
> include ("../../JpGraph/jpgraph_scatter.php");
>
> # サンプル(1)
> $axis_x_min = 10; //X最小値
> $axis_x_max = "auto"; //X最大値
$axis_x_min > $axis_x_max となってしまうので、エラーとなります。
> # サンプル(2)
> //$axis_x_min = 1000; //X最小値
> //$axis_x_max = "auto"; //X最大値
こちらも、$axis_x_min > $axis_x_max となってしまうので、エラーとなり
ます。
なぜ "auto" が 10 や 1000 より小さいとみなされるのかについては、以下を
参照ください。
http://www.php.net/manual/ja/language.types.string.php#language.types.string.conversion
--
高木 正弘 mailto:matakagi @ osk2.3web.ne.jp
PHP-users メーリングリストの案内