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(600400,'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(30303040);
//左 右 上 下
$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(0141024);
// 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(0151020);
// 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'>");
?>