JpGraph(Ver.4.2.0)を使ってPHPでグラフを描いていてはまった。
SetColor()を使って色を指定してもなぜか色が変わらないというトラブル。
ソースコードその1:
<?php require_once ('jpgraph/jpgraph.php'); require_once ('jpgraph/jpgraph_line.php'); $ydata = array(1,2,1,3,1,4); $graph = new Graph(400,300); $graph->SetScale("textlin"); $lineplot=new LinePlot($ydata); $lineplot->SetColor("orange"); $graph->Add($lineplot); $graph->Stroke(); ?>
ソースコードその2:
<?php require_once ('jpgraph/jpgraph.php'); require_once ('jpgraph/jpgraph_line.php'); $ydata = array(1,2,1,3,1,4); $graph = new Graph(400,300); $graph->SetScale("textlin"); $lineplot=new LinePlot($ydata); $graph->Add($lineplot); $lineplot->SetColor("orange"); $graph->Stroke(); ?>
どちらもオレンジ("orage")を指定しているはずが、その1はなぜか青で、その2だと期待通りのオレンジ。
何が違うのかと言うと、その1はSetColor()してからAdd()。一方のその2はAdd()してからSetColor()。
なぜか後者(その2)の順番でないと期待通りに色が変わらない。
ぐぐって探してみたんだが、このことに触れているサイトは見つけられなかった。
Ver.4.2.0の不具合なのかもしれないねえ。
それともPHPのバージョンのせい? PHPはVer.5.3.3。