Yamamoto's Laboratory
コンピューター グラフ作成 web_gnuplot ソースリスト

web_gnuplotソースリスト


index.php

web_gnuplot のソースリスト

001   <!-- -*- coding:euc-jp -*- -->
002   
003   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
004   <html lang="ja">
005   
006     <head> 
007       <META HTTP-EQUIV = "Content-Type" CONTENT = "text/html; charset=EUC-JP">
008       <META http-equiv="Pragma" content="no-cache">
009       <META http-equiv="Cache-Control" content="no-cache">
010       <META http-equiv="Expires" content="0">
011       <meta http-equiv="Content-Script-Type" content="text/javascript">
012       <link rel="stylesheet" href="../../../stylesheet.css" type="text/css">
013       <TITLE>webを使った gnuplot グラフ作成</TITLE>
014       <STYLE TYPE="text/css">
015       <!--
016       BLOCKQUOTE {margin:3px 20px 5px 100px}
017       .list {margin:4px 20px 4px 20px}
018       .enumerate {margin:7px 40px 7px 50px}
019       .CommandName {font-size:12pt; color:#1F6f1F}
020       .discriptin {padding-bottom : 20px}
021       a.help:link {color:#00FFFF;text-decoration:none}
022       a.help:visited {color:#00FFFF;text-decoration:none}
023       a.help:hover {color:#ffffff;text-decoration:none}
024       -->
025       </STYLE>
026     </HEAD>
027   
028   
029     <body class="frame">
030   
031       <?PHP
032       mb_http_output("EUC_JP");
033       mb_internal_encoding("EUC_JP");
034       ob_start("mb_output_handler");
035       $side_webgnuplot=TRUE;
036       include "../../../head_menu.php";
037       include "../begin_side_menu_graph.php";
038       ob_end_flush();
039       ?>
040   
041       <div class="page_top">
042   
043         <div class="path">
044       <span class="parent"><a href="../../index.html">コンピューター</a></span>
045       <span class="parent"><a href="../index.php">グラフ作成</a></span>
046       <span class="self">web_gnuplot</span>
047         </div>
048   
049         <h1 class="title">web_gnuplot<span class="subtitle">ブラウザから gnuplot の実行</span></h1>
050   
051       </div>
052       
053       <hr>
054   
055       <!-- ========================================================= -->
056       <h2 class="body" id="introduction">webを使ったグラフ作成ツール</h2>
057       <!-- ========================================================= -->
058   
059       <P>webのインターフェースを使ったグラフ作成ツールです.グラフはgnuplotで作成します.</P>
060   
061       <p>簡単な例を<a href="help/example_1.png">ここ</a>に載せておきます.<a href="help/example_1.png">この例</a>のように記述して,プロットボタンをクリックするとグラフができます.いろいろな機能がありますので,使ってください.</p>
062   
063       <p>グラフデータ入力画面の項目をクリックするとヘルプがあらわれます.作図するときの参考にしてください.</p>
064   
065       <p>また,<a href="source.php">ソースリスト</a>を載せておきます.汚いプログラムですが,何かの参考になると思います.</p>
066   
067       <!-- --------------------------------------------------------- -->
068       <h3 class="body" id="input_form">グラフデータ入力画面</h3>
069       <!-- --------------------------------------------------------- -->
070   
071       <?PHP
072       if(isset($_GET["status"]) && $_GET["status"]=="clear"){
073         setcookie("webgp_data[plot_data]","",0);
074       }else{
075         $_GET["status"]="keep";
076       }
077    
078       $x_low=array("1列","2列","3列","4列","5列","6列","7列","8列","9列");
079       $y_low=array("1列","2列","3列","4列","5列","6列","7列","8列","9列");
080       $line=array("","折線","スプライン","指数","対数","定数","1次関数","2次関数","3次関数","4次関数","5次関数","6次関数",
081                    "7次関数","8次関数","9次関数",
082                    "1次関数(原点通過)","2次関数(原点通過)","3次関数(原点通過)",
083                    "4次関数(原点通過)","5次関数(原点通過)","6次関数(原点通過)",
084                    "7次関数(原点通過)","8次関数(原点通過)","9次関数(原点通過)");
085       $g_file=array("emf","eps","png","png(透明)");
086       ?>
087   
088       <FORM method="POST" action="mk_graph.php">
089         <TABLE border="1" style="background-color:indianred;">
090       <TBODY>
091         
092         <!-- ---------- タイトル ------------- -->
093         <TD><a href="help/title.php" class="help">タイトル</a></TD>
094         <TD><INPUT size="60" type="text" name="title" <?php 
095                               if(isset($_COOKIE['webgp_data']['title'])){
096        print "value=\"".$_COOKIE['webgp_data']['title']."\">&nbsp;\n";
097                               }else{
098                                 print ">&nbsp;\n";
099                               }?>
100       </TR>
101       <TR>
102         
103         <!-- ---------- x軸 ------------- -->
104         <TR>
105       <TD><a href="help/x_axis.php" class="help">x軸</a></TD>
106       <TD>最小&nbsp;<INPUT size="8" type="text" name="x_min" <?PHP
107                                  if(isset($_COOKIE['webgp_data']['x_min'])){
108                              print "value=\"".$_COOKIE['webgp_data']['x_min']."\">\n";
109                                  }else{
110                              print ">\n";
111                                  }
112                          print "&nbsp;最大&nbsp;<INPUT size=\"8\" type=\"text\" name=\"x_max\"";
113                          if(isset($_COOKIE['webgp_data']['x_max'])){
114                              print "value=\"".$_COOKIE['webgp_data']['x_max']."\">\n";
115                          }else{
116                              print ">\n";
117                              }
118   
119                  if(isset($_COOKIE['webgp_data']['x_axis'])){
120                  print '<INPUT type="checkbox" name="x_axis" value="checked"'.$_COOKIE['webgp_data']['x_axis'].">対数\n";
121                }else{
122                  print '<INPUT type="checkbox" name="x_axis" value="checked"'.">対数\n";
123                }
124   
125                          print "&nbsp;ラベル&nbsp;<INPUT size=\"15\" type=\"text\" name=\"x_label\"";
126                          if(isset($_COOKIE['webgp_data']['x_label'])){
127                              print "value=\"".$_COOKIE['webgp_data']['x_label']."\">\n";
128                          }else{
129                              print ">\n";
130                          }
131                          ?>
132           </TD>
133       </TR>
134   
135        <!-- ---------- y軸 ------------- -->
136       <TR>
137       <TD><a href="/yamamoto/comp/graph/web_gnuplot/help/y_axis.php" class="help">y軸</a></TD>
138       <TD>最小&nbsp;<INPUT size="8" type="text" name="y_min" <?PHP
139                          if(isset($_COOKIE['webgp_data']['y_min'])){
140                              print "value=\"".$_COOKIE['webgp_data']['y_min']."\">\n";
141                          }else{
142                              print ">\n";
143                          }
144                          print "&nbsp;最大&nbsp;<INPUT size=\"8\" type=\"text\" name=\"y_max\"";
145                          if(isset($_COOKIE['webgp_data']['y_max'])){
146                              print "value=\"".$_COOKIE['webgp_data']['y_max']."\">\n";
147                          }else{
148                              print ">\n";
149                              }
150                  if(isset($_COOKIE['webgp_data']['y_axis'])){
151                print '<INPUT type="checkbox" name="y_axis" value="checked"'.$_COOKIE['webgp_data']['y_axis'].">対数\n";
152                  }else{
153                print '<INPUT type="checkbox" name="y_axis" value="checked"'.">対数\n";
154                  }
155   
156                          print "&nbsp;ラベル&nbsp;<INPUT size=\"15\" type=\"text\" name=\"y_label\"";
157                          if(isset($_COOKIE['webgp_data']['y_label'])){
158                              print "value=\"".$_COOKIE['webgp_data']['y_label']."\">\n";
159                          }else{
160                              print ">\n";
161                          }
162                          ?>
163           </TD>
164       </TR>
165   
166       <!-- ---------- 表示 ------------- -->
167       <TR>
168       <TD><a href="/yamamoto/comp/graph/web_gnuplot/help/hyoji.php" class="help">表示</a></TD>
169       <TD>グリッド&nbsp;<?PHP
170                 if(isset($_COOKIE['webgp_data']['x_grid'])){
171                   print "<INPUT type=\"checkbox\" name=\"x_grid\" value=\"checked\" ".
172                     $_COOKIE['webgp_data']['x_grid'].">x\n";
173                 }else{
174                   print "<INPUT type=\"checkbox\" name=\"x_grid\" value=\"checked\" ".">x\n";
175                 }
176   
177                  if(isset($_COOKIE['webgp_data']['y_grid'])){
178                print "<INPUT type=\"checkbox\" name=\"y_grid\" value=\"checked\" ".
179                              $_COOKIE['webgp_data']['y_grid'].">y\n";
180                  }else{
181                print "<INPUT type=\"checkbox\" name=\"y_grid\" value=\"checked\" ".">y\n";
182                  }
183   
184         print "&nbsp;&nbsp;\n";
185         if(isset($_COOKIE['webgp_data']['monochrome'])){
186           print '<INPUT type="checkbox" name="monochrome" value="checked" '.
187             $_COOKIE['webgp_data']['monochrome'].">白黒\n";
188         }else{
189           print '<INPUT type="checkbox" name="monochrome" value="checked" '.">白黒\n";
190         }
191   
192                          ?>
193   
194   
195       </TR>
196   
197       <!-- ---------- xデータ ------------- -->
198       <TR>
199       <TD><a href="/yamamoto/comp/graph/web_gnuplot/help/x_data.php" class="help">xデータ</a></TD>
200       <TD><?PHP
201             if(isset($_COOKIE['webgp_data']['x_row'])){
202                 set_select("x_row",$x_low,$_COOKIE['webgp_data']['x_row']);
203             }else{
204                 set_select("x_row",$x_low,0);
205             }
206             ?>
207       </TD>
208       </TR>
209   
210       <!-- ---------- yデータ ------------- -->
211       <TR>
212       <TD><a href="/yamamoto/comp/graph/web_gnuplot/help/y_data.php" class="help">yデータ</a></TD>
213       <TD><?PHP
214             if(isset($_COOKIE['webgp_data']['y_row'])){
215                 set_select("y_row",$y_low,$_COOKIE['webgp_data']['y_row']);
216             }else{
217                 set_select("y_row",$y_low,1);
218             }
219   
220         print "&nbsp;&nbsp;\n";
221         ?>
222         ポイントサイズ&nbsp;<INPUT size="4" type="text" name="psize" <?PHP
223                      if(isset($_COOKIE['webgp_data']['psize'])){
224                        print "value=\"".$_COOKIE['webgp_data']['psize']."\">\n";
225                      }else{
226                        print "value=1.0>\n";
227                      }
228            
229             print "&nbsp;ライン\n";
230   
231             if(isset($_COOKIE['webgp_data']['line'])){
232                 set_select("line",$line,$_COOKIE['webgp_data']['line']);
233             }else{
234                 set_select("line",$line,0);
235             }
236             ?>
237       </TD>
238       </TR>
239   
240       <!-- ---------- データエリア ------------- -->
241       <TR>
242             <TD colspan=2><a href="help/data_area.php" class="help">データエリア</a>&nbsp;<INPUT TYPE=button VALUE="データクリア" onClick="location.href='/yamamoto/comp/graph/web_gnuplot/index.php?status=clear'"></TD>
243       </TR>
244       <TR>
245       <TD colspan=2><textarea name="plot_data" cols=60 rows=20><?PHP
246                     if(isset($_COOKIE['webgp_data']['plot_data']) && $_GET['status']!="clear"){
247                         print "\n".$_COOKIE['webgp_data']['plot_data']."\n";
248                     }
249   ?></textarea></TD>
250       </TR>
251       <TR>
252   
253   
254       <!-- ---------- 描画 ------------- -->
255       <TR>
256       <TD><a href="/yamamoto/comp/graph/web_gnuplot/help/byoga.php" class="help">描画</a></TD>
257           
258       <TD>
259           <?PHP
260           print "ファイル&nbsp;";
261             if(isset($_COOKIE['webgp_data']['g_file'])){
262                 set_select("g_file",$g_file,$_COOKIE['webgp_data']['g_file']);
263             }else{
264                 set_select("g_file",$g_file,0);
265             }
266   
267             ?>
268                     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
269           <INPUT TYPE="submit" value="プロット">
270           </TD>
271       </TR>
272   
273       </TBODY>
274       </TABLE>
275   </FORM>
276   
277   <!-- ---------------- 関数 ----------------------- -->
278   <?php
279                //=================================================================
280                // setting of radio button
281                //    1st argument:name
282                //    2nd argument:label
283                //    3rd argument:checked number
284                //=================================================================
285                function set_radio($name,$label,$on){
286                              for($i=0; isset($label[$i]); $i++){
287                                  if($i==$on){
288                                      print "<INPUT type=\"radio\" name=\"".$name."\" value=\"".$i.
289                                      "\" checked>".$label[$i]."\n";
290                                  }else{
291                                      print "<INPUT type=\"radio\" name=\"".$name."\" value=\"".$i.
292                                      "\">".$label[$i]."\n";
293                                  }
294                              }
295                          }
296   
297                //=================================================================
298                // setting of select
299                //    1st argument:name
300                //    2nd argument:label
301                //    3rd argument:selected number
302                //=================================================================
303                function set_select($name,$label,$on=1){
304                    print "<select name=\"".$name."\">\n";
305                              for($i=0; isset($label[$i]); $i++){
306                                  if($i==$on){
307                                      print "<option value=".$i." selected>".$label[$i]."\n";
308                                  }else{
309                                      print "<option value=".$i.">".$label[$i]."\n";
310                                  }
311                              }
312                              print "</select>\n";
313                          }
314   
315   ?>
316   
317   <!-- ---------------- 本文はここまで ---------------- -->
318   <?PHP
319    $show_counter=FALSE;
320    $show_update=TRUE;
321    include "../../../end_process.php";
322   ?>
323   
324   
325   </BODY>
326   </HTML>

mk_graph.php

mk_grpaht.php のソースリスト

001   <!-- -*- coding:euc-jp -*- -->
002   
003   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
004   <html lang="ja">
005   
006   <HEAD> 
007   <META HTTP-EQUIV = "Content-Type" CONTENT = "text/html; charset=EUC-JP">
008   <META http-equiv="Pragma" content="no-cache">
009   <META http-equiv="Cache-Control" content="no-cache">
010   <META http-equiv="Expires" content="0">
011   <meta http-equiv="Content-Script-Type" content="text/javascript">
012   <link rel="stylesheet" href="../../../stylesheet.css" type="text/css">
013   <TITLE>グラフの作成</TITLE>
014   <STYLE TYPE="text/css">
015   <!--
016   h4 {margin-left:20px;}
017   p {margin-left:40px; margin-right:40px}
018   -->
019   </STYLE>
020   </HEAD>
021   
022   <BODY class="frame">
023   
024   <?PHP
025   mb_http_output("EUC_JP");
026   mb_internal_encoding("EUC_JP");
027   ob_start("mb_output_handler");
028   include "../../../head_menu.php";
029   ob_end_flush();
030   
031   // ----------------- クッキーの設定 ----------------------------------
032   $save_time=60*60*24;
033   SET_COOKIE("webgp_data", "title",      $save_time);
034   SET_COOKIE("webgp_data", "x_min",      $save_time);
035   SET_COOKIE("webgp_data", "x_max",      $save_time);
036   SET_COOKIE("webgp_data", "x_axis",     $save_time);
037   SET_COOKIE("webgp_data", "x_label",    $save_time);
038   SET_COOKIE("webgp_data", "y_min",      $save_time);
039   SET_COOKIE("webgp_data", "y_max",      $save_time);
040   SET_COOKIE("webgp_data", "y_axis",     $save_time);
041   SET_COOKIE("webgp_data", "y_label",    $save_time);
042   SET_COOKIE("webgp_data", "x_grid",     $save_time);
043   SET_COOKIE("webgp_data", "y_grid",     $save_time);
044   SET_COOKIE("webgp_data", "color",      $save_time);
045   SET_COOKIE("webgp_data", "x_row",      $save_time);
046   SET_COOKIE("webgp_data", "y_row",      $save_time);
047   SET_COOKIE("webgp_data", "y_withline", $save_time);
048   SET_COOKIE("webgp_data", "y_spline",   $save_time);
049   SET_COOKIE("webgp_data", "y_exp",      $save_time);
050   SET_COOKIE("webgp_data", "y_log",      $save_time);
051   SET_COOKIE("webgp_data", "psize",      $save_time);
052   SET_COOKIE("webgp_data", "line",       $save_time);
053   SET_COOKIE("webgp_data", "plot_data",  $save_time);
054   SET_COOKIE("webgp_data", "g_file",     $save_time);
055   SET_COOKIE("webgp_data", "monochrome", $save_time);
056   
057   
058   //------------- 古いファイルの削除 ---------------------------------------------
059   $tmp_dir="tmp/";
060   $handle = opendir($tmp_dir);
061   while(false !== ($file = readdir($handle))){
062     if($file != "." && $file != ".." && $file != "data.txt" && $file != "gp_error.txt"){
063       $file = $tmp_dir.$file;
064       $fst = stat($file);
065       $age = time()-$fst["mtime"];
066       if(3600<$age)unlink($file);
067     }
068    }
069   
070   // ----------------- パイプを開く ----------------------------------
071   
072   $fp=fopen("tmp/data.txt","w");
073   fwrite($fp,$_POST["plot_data"]);
074   fclose($fp);
075   
076   
077   $error=0;
078   
079   $descriptorspec = array(
080      0 => array("pipe", "r"),  // stdin
081      1 => array("pipe", "w"),  // stdout
082      2 => array("file", "tmp/gp_error.txt", "a") // stderr
083   );
084   
085   
086   $gnuplot = proc_open('gnuplot', $descriptorspec, $pipes);
087   
088   if ( ! is_resource($gnuplot) ) {
089     print "proc_open error\n";
090     exit(1);
091   }
092   
093   
094   // ----------------- グラフ作成 ----------------------------------
095   $stdout_file="tmp/stdout.txt";
096   
097   fwrite($pipes[0],"reset\n");
098   fwrite($pipes[0],"set print \"".$stdout_file."\"\n");
099   if(isset($_POST["monochrome"])){
100          fwrite($pipes[0],"set terminal postscript eps enhanced monochrome dashed font 'CenturySchL-Roma,18'\n");
101      }else{
102          fwrite($pipes[0],"set terminal postscript eps enhanced solid color font 'CenturySchL-Roma,18'\n");
103      }
104   fwrite($pipes[0],"set output \"tmp/graph.eps\"\n");
105   fwrite($pipes[0],"unset key\n");
106   fwrite($pipes[0],"set samples 2048\n");
107   fwrite($pipes[0],"set tics scale 2,1\n");
108   fwrite($pipes[0],"set style line 1 lt 4 lw 3 pt 7 ps ".$_POST["psize"]."\n");
109   
110   if(isset($_POST["title"])){
111          fwrite($pipes[0],"set title \"".$_POST["title"]."\"\n");
112          fwrite($pipes[0],"show title\n");
113      }
114   
115   if(isset($_POST["x_label"])){
116          fwrite($pipes[0],"set xlabel \"".$_POST["x_label"]."\"\n");
117      }
118   
119   if(isset($_POST["y_label"])){
120          fwrite($pipes[0],"set ylabel \"".$_POST["y_label"]."\"\n");
121      }
122   
123   if(isset($_POST["x_min"]) && isset($_POST["x_max"])){
124       if($_POST["x_min"] < $_POST["x_max"]){
125           fwrite($pipes[0],"set xrange [".$_POST["x_min"].":".$_POST["x_max"]."]\n");
126       }else{
127          $message[$error]="x軸:最大は,最小より大きくする必要があります.";
128          $error++;
129       }
130    }
131   
132   if(isset($_POST["y_min"]) && isset($_POST["y_max"])){
133       if($_POST["y_min"] < $_POST["y_max"]){
134           fwrite($pipes[0],"set yrange [".$_POST["y_min"].":".$_POST["y_max"]."]\n");
135       }else{
136           $message[$error]="y軸:最大は,最小より大きくする必要があります.";
137           $error++;
138       }
139    }
140   
141   if(isset($_POST["x_axis"])){
142       if($_POST["x_min"]<=0){
143           $message[$error]="x軸:対数目盛の場合,最小はゼロより大きくする必要があります.";
144           $error++;
145       }else{
146           fwrite($pipes[0],"set logscale x\n");
147       }
148    }
149   
150   if(isset($_POST["y_axis"])){
151       if($_POST["y_min"]<=0){
152           $message[$error]="y軸:対数目盛の場合,最小はゼロより大きくする必要があります.";
153           $error++;
154       }else{
155           fwrite($pipes[0],"set logscale y\n");
156       }
157    }
158   
159   if(isset($_POST['x_grid']) && $_POST['x_grid']=="checked"){
160       fwrite($pipes[0],"set grid xtics mxtics\n");
161    }
162   
163   if(isset($_POST['y_grid']) && $_POST['y_grid']=="checked"){
164       fwrite($pipes[0],"set grid ytics mytics\n");
165    }
166   
167   //------------- 最小自乗法 ---------------------------------------------
168   
169   $xxx=$_POST["x_row"]+1;
170   $yyy=$_POST["y_row"]+1;
171   $x_y=$xxx.":".$yyy;
172   
173   
174   if(2 < $_POST["line"]){
175   
176       if($_POST["line"]==3){
177           $fit_func="a*exp(b*x)";
178           $para="a,b";
179       }else if($_POST["line"]==4){
180           $fit_func="a*log(b*x)";
181           $para="a,b";
182       }else if(4<$_POST["line"] && $_POST["line"]<15){
183           $fit_func = "a0";
184           $para = "a0";
185           for($i=1; $i<=$_POST["line"]-5;$i++){
186               if($i==1){
187                       $fit_func .= "+a".abs($i)."*x";
188               }else{
189                   $fit_func .= "+a".abs($i)."*x**".abs($i);
190               }
191               $para .= ",a".abs($i);
192           }
193       }else if(14<$_POST["line"] && $_POST["line"]<24){
194           $fit_func = "a1*x";
195           $para = "a1";
196           for($i=2; $i<=$_POST["line"]-14;$i++){
197               $fit_func .= "+a".abs($i)."*x**".abs($i);
198               $para .= ",a".abs($i);
199           }
200       }
201   
202       fwrite($pipes[0],"f(x)=".$fit_func."\n");
203       fwrite($pipes[0],"fit f(x) \"tmp/data.txt\" using ".$x_y." via ".$para."\n");
204       fwrite($pipes[0],"print ".$para."\n");
205    }
206   
207   //------------- グラフファイル作成 ---------------------------------------------
208   
209   if($_POST["line"]!=1){
210       fwrite($pipes[0],"plot \"tmp/data.txt\" using ".$x_y." with points ls 1");
211    }else{
212       fwrite($pipes[0],"plot \"tmp/data.txt\" using ".$x_y." with linespoints ls 1");
213    }
214   
215   if($_POST["line"]==2){
216       fwrite($pipes[0],",\"tmp/data.txt\" using ".$x_y." smooth csplines with lines");
217    }else if($_POST["line"]==3){
218       fwrite($pipes[0],",f(x)");
219    }else if($_POST["line"]==4){
220       fwrite($pipes[0],",f(x)");
221    }else if(4<$_POST["line"] && $_POST["line"]<23){
222       fwrite($pipes[0],",f(x)");
223    }
224   
225   fwrite($pipes[0],"\n");
226   
227   //------------- グラフファイル作成 ---------------------------------------------
228   
229   srand((double)microtime()*1000000);
230   $gf_name=rand(100000,999999);
231   
232   $f_type="eps";
233   $g_file="tmp/".$gf_name;
234       
235   if(isset($_POST["monochrome"])){
236           $term_set = "postscript eps enhanced monochrome dashed font 'CenturySchL-Roma,18'";
237       }else{
238       $term_set = "postscript eps enhanced solid color font 'CenturySchL-Roma,18'";
239           }
240   
241   fwrite($pipes[0],"set terminal ".$term_set."\n");
242   fwrite($pipes[0],"set output \"".$g_file.".eps"."\"\n");
243   fwrite($pipes[0],"replot\n");
244   
245       
246   if(isset($_POST["monochrome"])){
247           $term_set = "emf monochrome dashed enhanced font 'CenturySchL-Roma,18'";
248       }else{
249       $term_set = "emf color solid enhanced font 'CenturySchL-Roma,18'";
250           }
251   
252   fwrite($pipes[0],"set terminal ".$term_set."\n");
253   fwrite($pipes[0],"set output \"".$g_file.".emf"."\"\n");
254   fwrite($pipes[0],"replot\n");
255   
256   //------------- クローズ ---------------------------------------------
257   
258   fclose($pipes[0]);
259   proc_close($gnuplot);
260   
261   $sys_cmd = sprintf("convert -density 100 -units PixelsPerInch %s %s", $g_file.".eps", "tmp/graph.png");
262   system ($sys_cmd);
263   
264   if(isset($_POST["g_file"]) && $_POST["g_file"]==0){
265        $f_type = "emf";
266        $plot_file = $g_file.".".$f_type;
267    }else if(isset($_POST["g_file"]) && $_POST["g_file"]==1){
268        $f_type = "eps";
269        $plot_file = $g_file.".".$f_type;
270    }else if(isset($_POST["g_file"]) && $_POST["g_file"]==2){
271        $f_type = "png";
272        $plot_file = $g_file.".".$f_type;
273        $sys_cmd = sprintf("convert -density 600 -units PixelsPerInch %s %s", $g_file.".eps", $g_file.".png");
274        system ($sys_cmd);
275    }else if(isset($_POST["g_file"]) && $_POST["g_file"]==3){
276        $f_type = "png";
277        $plot_file = $g_file.".".$f_type;
278        $sys_cmd = sprintf("convert -density 600 -units PixelsPerInch %s %s", $g_file.".eps", $g_file.".png");
279        system ($sys_cmd);
280    }
281   
282   
283   
284   //------------- ディスプレイ表示 ---------------------------------------------
285   
286   print '<h4>グラフ</h4>'."\n";
287   
288   print "<p><a href=\"".$g_file.".".$f_type."\">グラフのファイル(".$f_type.")</a>ができましたので,右クリックによりダウンロードしてください.</p>\n";
289   
290   
291   if($error == 0){
292       print "<div style=\"width:640px;padding:10px 30px 30px 30px;margin:40px;background-color:#CEE0FF;\">\n";
293       print "<div style=\"margin-top:0px;margin-left:20px;margin-bottom:10px;\">\n";
294       print "<INPUT TYPE=button VALUE=\"グラフの修正\" onClick=\"location.href='/yamamoto/comp/graph/web_gnuplot/index.php'\">\n";
295       print "</div>\n";
296       print "<img src=\"tmp/graph.png\">\n";
297       print "</div>\n";
298    }else{
299       print $error."個の入力にエラーがあります.<BR>\n";
300       print "<ol>\n";
301       foreach($message as $txt){
302           print "<li>".$txt."</li><BR>\n";
303       }
304       print "</ol>\n";
305    }
306   
307   //------------- フィッティングの結果表示 ---------------------------------------------
308   if(2<$_POST["line"]){
309     $fh = fopen($stdout_file, "r");
310     $fit_line = fgets($fh, 4096);
311     fclose($fh);
312     $fit =  split(" ", $fit_line);
313     $p = split(",", $para);
314     print '<h4>フィッティング結果</h4>'."\n";
315     print '<p>フィッティング関数は,</P>';
316     print '<p><span style="padding-left:50px;color:red;">f(x)='.$fit_func."</span></P>";
317     print "<p>です.フィッティングのパラメーターは次のようになります.</p>\n";
318     $i=0;
319     foreach($fit as $value){
320       print "<P style=\"padding-left:80px;color:red;\">".$p[$i]." = ".$value."</p>";
321       $i++;
322     }
323   
324   
325       
326    }
327   
328   ?>
329   
330   <!-- ---------------- 本文はここまで ---------------- -->
331   <?PHP
332    $show_counter=FALSE;
333    $show_update=TRUE;
334    include "../../../end_process.php";
335   ?>
336   
337   
338   
339   <!-- ---------------- 関数 ----------------------- -->
340   <?php
341    //=================================================================
342    // setting of radio button
343    //    1st argument:name
344    //    2nd argument:label
345    //    3rd argument:checked number
346    //=================================================================
347   function SET_COOKIE($cn,$arg,$time){
348     if(isset($_POST[$arg])){
349       setcookie("webgp_data[$arg]", $_POST[$arg], time()+$time);
350     }
351   }


no counter