我有一个动态创建gnuplot脚本的php文件,然后使用另一个php文件预先创建的4个文本文件(每行一行)运行该脚本。
问题是graph.eps文件是空白生成的,我无法弄明白。我觉得它与文本文件所在的目录有关。
这是我生成然后运行的文件。
set terminal postscript enhanced color
set size ratio 0.7058
set output '/srv/../A.2.5.1a.eps'
set grid
set key font "Arial,10"
set key center bot
set key out vertical
set key horizontal center
set key box
set style line 1 linetype 1 linecolor rgb "red" linewidth 2.000 pointtype 6 pointsize default
set style line 3 linetype 1 linecolor rgb "#DAA520" linewidth 2.000 pointtype 6 pointsize default
set style line 4 linetype 1 linecolor rgb "#006400" linewidth 2.000 pointtype 6 pointsize default
set style line 6 linetype 1 linecolor rgb "blue" linewidth 2.000 pointtype 6 pointsize default
set multiplot
set palette model RGB functions 0.8+gray/3, 0.8+gray/3, 0.8+gray/3
set pm3d map
set isosample 100,100
unset colorbox
unset border
unset xtics
unset ytics
set nokey
set nolabel
set size 1.025,1.2
set origin -0.021,-0.06
splot y t ' '
set title "SECTION A.2.5.1a TEST RESULTS"
set key box
set key horizontal center bot
set y2tics 0 , 200
set ytics nomirror
set xtics nomirror
set border
set xtics 250
set xtics font "Arial,8"
set ytics 1750
set size 1,1
set xtics out offset -1,-0.5
set xtics rotate by 45
unset origin
unset x2tics
set xlabel "Loop Length, 26AWG(kft)"
set ylabel "Downstream Data Rate (kbps)"
set y2label "Upstream Data Rate (kbps)"
set xrange [ 250 : 5500 ] noreverse nowriteback
set yrange [ 0 : 14000 ] noreverse nowriteback
set y2range[ 0 : 1400 ] noreverse nowriteback
set bmargin 7
plot "DSE_A.2.5.1a.txt" ls 4 title 'Expected Downstream Rate' with linespoints, \
"DS_A.2.5.1a.txt" ls 1 title 'Measured Downstream Rate' with linespoints, \
\
"USE_A.2.5.1a.txt" axes x1y2 ls 6 title 'Expected Upstream Rate' with linespoints, \
"US_A.2.5.1a.txt" axes x1y2 ls 3 title 'Measured Upstream Rate' with linespoints
unset multiplot
创建后,我使用:
exec( "{$pathName} gnuplot {$File}");
$ pathName是文件的CWD,$ File变量解释自己。
我已经尝试使用情节$ pathname / DS_A.2.5.1a.txt等,但这也不起作用。
感谢您的时间,我为冗长的帖子道歉。我更改了设置输出路径,因为它很长并且包含相对私密的信息。
谢谢,我期待所有回复!
编辑:我刚刚阅读http://linux.byexamples.com/archives/487/plot-your-graphs-with-command-line-gnuplot/,我认为可能不是chmod-ing而其他命令可能是个问题,但是当我尝试它时仍然无效。
由于它是在服务器上远程运行的,所以当我手动运行gnuplot时,我没有收到错误消息。
答案 0 :(得分:1)
显示执行的命令可能很有帮助。而不是:
exec( "{$pathName} gnuplot {$File}");
试
$command_to_execute = "$pathName gnuplot $File";
echo $command_to_execute . "\n";
exec( $command_to_execute );
您gnuplot
的路径似乎无效。您可能需要删除空格,如下所示:
$command_to_execute = "{$pathName}gnuplot {$File}";
你可能需要添加一个斜杠,如下所示:
$command_to_execute = "{$pathName}/gnuplot {$File}";