PHPlot グラフ表示
PHPlot ロ-ソク足チャ-ト-その2
PHPlot を利用してロ-ソク足チャ-ト-その2 を作成していきます。
作成ファイル内容は、
63Pear Village に戻り
左サイドナビ「PHPlot グラフ表示」の中の
PHPlot ロ-ソク足チャ-ト PHP ファイル
から見てください。
前項において
ロ-ソク足チャ-ト・折線グラフ共通項目設定まで説明しました。
引き続き、折線グラフ部を作成していきます。
折線グラフ部作成
ロ-ソク足チャ-ト部を作成する前に、まずは折線グラフ部から作成していきます。
- 折線グラフデ-タ
表示する棒グラフのデ-タ値を定義します。
$data1 =
array(
array('4/1',16),
array('2',17),
array('3',18),
array('4',19),
array('5',18),
array('6',17),
array('7',16),
array('8',17),
array('9',18),
array('10',19) );
すなわち、
4/1日 16%
2日 17%
・・・・・・・・
10日 19%
のデ-タを設定しました。
それでは順次折線グラフの仕様を決めていきましょう。 - 折線グラフに設定
グラフの種類は SetPlotType メソッドで行います。
$plot -> SetPlotType('lines');
とすると、折線グラフが作成されます。
ちなみに、グラフの種類には次のものがあります。
・bars … 棒グラフ
・thinbarline … 線状棒グラフ
・area … エリアグラフ
・lines … 折線グラフ
・linepoints … 折線グラフにデータの点をプロット(デフォルト)
・points … データの点のみをプロット
・stackedbars … 各要素を積み重ね - グラフデ-タ設定
SetDataValues メソッドで 折線グラフデ-タ $data1 をキャンンパスに設定します。
$plot -> SetDataValues($data1); - 折線グラフ Y軸の目盛文字の表示位置
折線グラフの Y軸目盛りは右側に表示したいと思います。
Y軸の目盛文字の表示位置を指定するには SetYTickLabelPos メソッドで行います。
$plot -> SetYTickLabelPos('plotright');
向かって Y軸線の右側に Y軸の目盛文字を表示します。
ちなみに、Y軸の目盛文字の表示位置指定には次のものがあります。
・plotleft ・・・ Y軸の目盛り線の左部
・plotright ・・・ Y軸の目盛り線の右部
・both ・・・ plotleft/plotrightの両方
・none ・・・ 表示しない - 折線グラフ Y軸の目盛線の配置場所
Y軸の目盛線の表示位置を指定するには SetYTickPos メソッドで行います。
Y軸の目盛線とは Y軸に直交する 8px 程度の横線です。
$plot -> SetYTickPos('plotright');
向かって右側に Y軸目盛線を表示します。
・plotleft ・・・ グラフ左部(デフォルト)
・plotright ・・・ グラフ右部
・both ・・・ plotleft/plotrightの両方
・none ・・・ 表示しない - 折線グラフ X,Y目盛値の最大,最小値設定
X,Y目盛値の最大,最小は SetPlotAreaWorld メソッドを使用します。
$plot -> SetPlotAreaWorld(0, 14, 10, 24);
( )内には、
X目盛最小値,Y目盛最小値
X目盛最大値,Y目盛最大値
の順にその値を指定します。 - 折線グラフ色指定
SetDataColors メソッドを使用して折線の色指定をします。
$plot -> SetDataColors('black');
黒色に指定しました。
デフォルトは青色のようです。 - 折線グラフ出力
DrawGraph メソッドで 折線グラフを一旦メモリ上に出力します。
$plot -> DrawGraph();
ここまでで、折線グラフができあがりました。
ロ-ソク足チャ-ト部作成
引き続きロ-ソク足チャ-ト部を作成していきます。
- ロ-ソク足チャ-トデ-タ
表示するロ-ソク足チャ-トのデ-タ値を定義します。
$data[0] = array('4/1', 18.37, 18.76, 17.27, 17.48);
$data[1] = array('2', 17.48, 18.62, 17.05, 18.13);
$data[2] = array('3', 18.13, 18.88, 18.00, 18.83);
$data[3] = array('4', 18.83, 18.90, 17.52, 17.88);
$data[4] = array('5', 17.88, 18.21, 17.84, 17.93);
$data[5] = array('6', 17.93, 18.59, 17.31, 18.33);
$data[6] = array('7', 18.33, 18.65, 16.88, 17.06);
$data[7] = array('8', 17.06, 17.45, 16.92, 17.14);
$data[8] = array('9', 17.14, 17.22, 16.60, 16.96);
$data[9] = array('10',16.96, 17.90, 16.26, 16.90);
すなわち、
4/1日 始値 18.37℃,高値 18.76℃,低値 17.27℃,終値 17.48℃
・・・・・・・・
10 日 始値 16.96℃,高値 17.90℃,低値 16.26℃,終値 16.90℃
のデ-タを設定しました。
それでは順次ロ-ソク足チャ-トの仕様を決めていきましょう。 - ロ-ソク足チャ-トに設定
グラフの種類は SetPlotType メソッドで行います。
$plot->SetPlotType('candlesticks2');
とすると、ロ-ソク足チャ-トが作成されます。
これがわかるのに非常に苦労しました。
ちなみに、グラフの種類には次のものがあります。
・bars … 棒グラフ
・thinbarline … 線状棒グラフ
・area … エリアグラフ
・lines … 折線グラフ
・linepoints … 折線グラフにデータの点をプロット(デフォルト)
・points … データの点のみをプロット
・stackedbars … 各要素を積み重ね - ロ-ソク足チャ-トデ-タ設定
SetDataValues メソッドで 折線グラフデ-タ $data をキャンンパスに設定します。
$plot -> SetDataValues($data); - ロ-ソク足チャ-ト Y軸の目盛文字の表示位置
ロ-ソク足チャ-トの Y軸目盛りは左側に表示したいと思います。
Y軸の目盛文字の表示位置を指定するには SetYTickLabelPos メソッドで行います。
$plot -> SetYTickLabelPos('plotleft');
向かって Y軸線の左側に Y軸の目盛文字を表示します。
ちなみに、Y軸の目盛文字の表示位置指定には次のものがあります。
・plotleft ・・・ Y軸の目盛り線の左部
・plotright ・・・ Y軸の目盛り線の右部
・both ・・・ plotleft/plotrightの両方
・none ・・・ 表示しない
- ロ-ソク足チャ-ト Y軸の目盛線の配置場所
Y軸の目盛線の表示位置を指定するには SetYTickPos メソッドで行います。
Y軸の目盛線とは Y軸に直交する 8px 程度の横線です。
$plot -> SetYTickPos('plotleft');
向かって右側に Y軸目盛線を表示します。
・plotleft ・・・ グラフ左部(デフォルト)
・plotright ・・・ グラフ右部
・both ・・・ plotleft/plotrightの両方
・none ・・・ 表示しない - ロ-ソク足チャ-ト Y軸の目盛幅
SetYTickIncrement メソッドで Y軸の目盛幅を指定します。
今回は目盛幅を 1 としました。
$plot->SetYTickIncrement(1); - ロ-ソク足チャ-ト X,Y目盛値の最大,最小値設定
X,Y目盛値の最大,最小は SetPlotAreaWorld メソッドを使用します。
$plot -> SetPlotAreaWorld(0, 15, 10, 20);
( )内には、
X目盛最小値,Y目盛最小値
X目盛最大値,Y目盛最大値
の順にその値を指定します。 - ロ-ソク足チャ-ト色指定
SetDataColors メソッドを使用してロ-ソク足の色指定をします。
低下時棒色、上昇時棒色、低下時線色、上昇時線色
の順で配列で指定します。
$plot -> SetDataColors(array( 'DarkGreen','red','DarkGreen','red' )); - ロ-ソク足チャ-ト
DrawGraph メソッドで ロ-ソク足チャ-ト メモリ上に出力します。
$plot -> DrawGraph();
後は、
print("<img src = 'sample4.png'>");
で WEB 上に表示すれば完了です。
引き続き、PHPlot ロ-ソク足チャ-ト・折線グラフを CSV ファイルから描いていきます。
長くなりましたのでここで一旦切りたいと思います。
PHPlot ロ-ソク足チャ-ト-その3 に続く
PHPlot ロ-ソク足チャ-ト に戻る