PHPlot グラフ表示

PHPlot ロ-ソク足チャ-ト

PHPlot を利用してロ-ソク足チャ-トを作成していきます。
ロ-ソク足チャ-トがどの様なものかについては
ローソク足チャート
を参照してください。
江戸時代に出羽国の本間宗久という人が発案したらしいです。
よって「蝋燭足票」と呼ぶべきとは思うものの実際は「ロ-ソク足チャ-ト」と言われています。
なぜなのかはよく分かりません。
日本語が英語化してしまったようです。
基本的に連続、サイクル性のあるデ-タをグラフ化するのに大変適しています。
例えば、1日の気温変化は、午前5時頃に最低になり、午後2時頃に最高になります。
0時0分の気温を始値とし、23時59分の気温を終値とし、この間の最高気温と最低気温を高値、低値とすると 1本のロ-ソク足ができます。
基本的に、
当日の始値=前日の終値 となります。
これを毎日続けていくとローソク足チャートが完成します。
当日の終値が当日の始値(前日の終値)より
 高く終わった時・・・赤色棒
 低く終わった時・・・緑色棒
で表示し、一日の気温変化を縦線
 縦線の最高値が午後2時頃の気温
 縦線の最低値が午前5時頃の気温
で示すとこれが気温のローソク足チャートです。
今回はこれに毎日の 23時59分におけるの湿度の折線グラフを追記してみます。
でき上がるとこんな感じになります。


気温ローソク足-湿度折線グラフ  

PHPlot ロ-ソク足チャ-ト ファイル作成

PHPlot ロ-ソク足チャ-ト ファイル phplot-candle-4.php を作成します。
なぜファイル名が -4 なのか、それは簡単いろいろ悪戦苦闘した挙げ句やっと動いたのが4版だったのです。
作成ファイル内容は、
63Pear Village に戻り
左サイドナビ「PHPlot グラフ表示」の中の
PHPlot ロ-ソク足チャ-ト PHP ファイル
から見てください。
まずは、PHPlot パッケ-ジを読み込みます。
require_once 'davefx/phplot/phplot/phplot.php';
折線と棒グラフを描画するキャンパスを用意します。
PHPlot オブジェクトを生成し
$plot = new PHPlot(600,400,'sample4.png'));
とすると、横 600px × 縦 400px のグラフキャンパスができました。
'sample4.png' が作成されたグラフのファイル名になります。

フォントの設定

グラフキャンバスのなかで使用するフォントを設定します。
日本語を使用したいので、日本語フォントを選びます。
C:\Windows\Fonts
の中にある日本語フォントはどれも
*****.ttc
でこれでは動かないようです。
そこで、フリ-の日本語フォントで、*.ttf のものを探して、これを利用します。
IPAフォント サイト
に行くと、2書体パック(IPAex明朝(Ver.003.01)、IPAexゴシック(Ver.003.01)) がありますので これを利用します。
IPAex明朝もよいのですが、今回は IPAexゴシック(Ver.003.01)を使用します。
IPAexfont00301.zip(9.21MB)
をダウンロ-ドすることができますのでこれを解凍後 ipaexg.ttf を fonts フォルダに置きます。
XAMPP 環境で言うと phplot-bar_line.php を
C:\xampp\htdocs\plot_gra
\phplot-bar_line.php
のように置いていたとすると
C:\xampp\htdocs\plot_gra
\fonts\ipaexg.ttf
となります。

ロ-ソク足チャ-ト・折線グラフ共通項目設定

最初にロ-ソク足チャ-ト・折線グラフの共通項目について設定していきます。

  1. グラフファイル出力

    SetIsInline メソッドを使って、
    $plot -> SetIsInline(true);
    とし、sample4.png なるグラフファイルが出力されるようにします。

  2. フォントパス指定

    タイトル表示に日本語を使用していますので、日本語の ttf フォント設定が必要です。
    日本語フォントが置かれていくフォントパスを指定します。
    $plot -> SetTTFPath
    (dirname(__FILE__).'/fonts');
    dirname(__FILE__) は自身がいるディレクトリの絶対パスを返すPHP関数でしたね。
    $plot -> SetDefaultTTFont('ipaexg.ttf');
    とすれば、日本語フォント設定は完了です。

  3. X,Y軸の目盛文字表示フォント設定

    X軸の目盛文字表示フォントを設定するには SetFontTTF メソッドで行います。
    X軸目盛文字表示フォントを設定は
    $plot -> SetFontTTF('x_label', 'ipaexg.ttf', 9);
    第3引数はフォントの大きさで 9px に設定しました。
    Y軸目盛文字表示フォントを設定は
    $plot -> SetFontTTF('y_label', 'ipaexg.ttf', 9);
    です。

  4. 目盛文字やタイトルが見えるようにする

    プロットエリアとラベルのマージンを指定するメソッド
    SetMarginsPixels
    を使って目盛文字やタイトルが見えるようにします。
    $plot -> SetMarginsPixels(30, 30, 30, 40);
    引数には順に、左 右 上 下 のマ-ジン量をピクセル単位で指定します。
    これらを0に設定すると プロットエリア=グラフ全体 になって目盛文字やタイトルが見えなくなってしまいます。

  5. タイトル表示

    横書きグラフタイトルを表示するには SetXTitle メソッドで行います。
    $plot -> SetXTitle('日付 4月','plotdown');
    第1引数は表示タイトル名です。
    第2引数にはタイトル表示位置を書きます。
    ・plotdown ・・・ タイトルをグラフ下部に表示
    ・plotup  ・・・ タイトルをグラフ上部に表示
    ・both   ... plotdown/plotup の両方
    ・none   ・・・ 表示しない
    又、SetTitle メソッドを使用するとグラフ上部に表題を書くことができます。
    $plot -> SetTitle("表題文字");


ここまでで、PHPlot ロ-ソク足チャ-ト・折線グラフ共通項目設定までができあがりました。
やっと道半ばです。
次ぎに、これに重ねて折線グラフとロ-ソク足チャ-トを作成します。
長くなりましたのでここで一旦切りたいと思います。


PHPlot ロ-ソク足チャ-ト-その2 に続く
PHPlot 折線-棒グラフファイル作成-その2 に戻る 

63PearVillage に戻る