PHPlot グラフ表示
PHPlot ロ-ソク足チャ-ト CSV 読込 PHP ファイル
phplot-candle-5.php
63Pear Villageに戻る
<?php
$filepath = "file/can_line_data.csv";
$file = new SplFileObject($filepath);
$file ->
setFlags(SplFileObject::READ_CSV);
/*
ファイル内のデータループ
$key $line $str の変数名は適宜決定
*/
foreach ($file as $key => $line) {
foreach($line as $str){
$records[$key][] = $str;
}
}
$last_l = count($records) - 1;
for($k1 = 1; $k1 < $last_l; $k1++){
$data[$k1-1] = array(
trim($records[$k1][0]),
trim($records[$k1][1]),
trim($records[$k1][2]),
trim($records[$k1][3]),
trim($records[$k1][4]));
}
for($k1 = 1; $k1 < $last_l; $k1++){
$data1[$k1-1] = array(
trim($records[$k1][0]),
trim($records[$k1][5]));
}
echo "ロ-ソク足 $ data=<pre>";
print_r($data);
echo "</pre>";
echo "ロ-ソク足 $ data1=<pre>";
print_r($data1);
echo "</pre>";
require_once
'davefx/phplot/phplot/phplot.php';
$plot = new PHPlot(600, 400,'sample5.png');
$plot -> SetIsInline(TRUE);
//ファイル出力できるようにする
$plot ->
SetTTFPath(dirname(__FILE__).'/fonts');
$plot ->
SetDefaultTTFont("ipaexg.ttf");
//TrueTypeフォント指定
$plot -> SetFontTTF('x_label', 'ipaexg.ttf', 9);
// x軸目盛り
$plot -> SetFontTTF('y_label', 'ipaexg.ttf', 9);
// y軸目盛り
$plot -> SetMarginsPixels(30, 30, 30, 40);
//左 右 上 下
$plot -> SetXTitle('日付 4月','plotdown');
$plot -> SetTitle(
" ℃ 気温 Candlesticks/湿度 Lines %"
);
/*
$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));
*/
$plot -> SetPlotType('lines');
$plot -> SetYTickLabelPos('plotright');
$plot -> SetYTickPos('plotright');
$plot -> SetDataValues($data1);
$plot -> SetPlotAreaWorld(0, 14, 10, 24);
// X軸の最小値、Y軸の最小値
// X軸の最大値、Y軸の最大値
$plot -> SetDataColors('black');
$plot -> DrawGraph();
/*
$data[] =
array($d[0], $d[1], $d[2], $d[3], $d[4]);
$data[0] =
array('1/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('1/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);
*/
$plot->SetDataValues($data);
$plot -> SetPlotAreaWorld(0, 15, 10, 20);
// X軸の最小値、Y軸の最小値
// X軸の最大値、Y軸の最大値
$plot -> SetPlotType('candlesticks2');
$plot -> SetYTickLabelPos('plotleft');
$plot -> SetYTickPos('plotleft');
$plot -> SetYTickIncrement(1);
$plot -> SetDataColors(array(
'DarkGreen','red','DarkGreen','red'
));
//bar_dn_色,bar_up_色,line_dn_色,line_up_色
$plot->DrawGraph();
//$plot->PrintImage();
print("<img src = 'sample5.png'>");
?>