我遇到了一个gnuplot实验。我是gnuplot的新手,我正在尝试探索gnuplot选项和种类。
首先,这是我要做的事情:从c程序我想绘制5个数据文件。尽管如此,我使用.gplt文件,makefile和a.c文件(在lubuntu上使用geany)。
以下是文件的样子:
=================== simulation.gplt ====================
plot 'result1.data' using 2:3 title "F" w lines
plot 'result2.data' using 2:3 title "F" w lines
plot 'result3.data' using 2:3 title "F" w lines
plot 'result4.data' using 2:3 title "F" w lines
plot 'result5.data' using 2:3 title "F" w lines
set ouput "simulation.ps"
replot
=================生成文件============================= =在这里输入代码
all:run plot
plot: result1.data
result2.data
result3.data
result4.data
result5.data
gnuplot simulation.gplt
ps2pdf simulation.ps
rm -f simulation.ps
evince simulation.pdf
run:program
./program
program: program.c
gcc -Wall -o program -O3 program.c -lm -g
clean:
rm -f program
rm -f result1.data
rm -f result2.data
rm -f result3.data
rm -f result4.data
rm -f result5.data
rm -f simulation.pdf
rm -f simulation.ps
............................................... ........
我可以在终端上打字清洁,外观似乎没问题。然而,当我输入“make”时,我会看到这两条消息:
make:result2.data:unknown命令 make **** [plot] error 127
重点:任何人都可以帮忙吗?我觉得Makefile中的错误,我试图多次修复它,但仍会出现相同的消息。
答案 0 :(得分:0)
首先,我编辑了您的问题,并在每行代码的开头添加了四个空格。通过这种方式,您可以获得良好的格式。
现在,我在make文件和gnuplot代码中看到了几个问题:
您的代码会在屏幕上生成四个图,每个图都会覆盖最后一个图。然后,您打开一个文件并执行replot
。此命令重复最后一个绘图命令,即只将result5.data写入文件。
接下来,仅设置输出文件是不够的。您必须先指定终端(文件类型)。
这将生成一个5页的PS文件,每页上有一个图:
set terminal postscript
set output "simulation.ps"
plot 'result1.data' using 2:3 title "F" w lines
plot 'result2.data' using 2:3 title "F" w lines
plot 'result3.data' using 2:3 title "F" w lines
plot 'result4.data' using 2:3 title "F" w lines
plot 'result5.data' using 2:3 title "F" w lines
unset output
或者,如果您想要单个图表中的所有数据,请使用:
set terminal postscript
set output "simulation.ps"
plot 'result1.data' using 2:3 title "F" w lines,\
'result2.data' using 2:3 title "F" w lines,\
'result3.data' using 2:3 title "F" w lines,\
'result4.data' using 2:3 title "F" w lines,\
'result5.data' using 2:3 title "F" w lines
unset output
注意:五个绘图对象用逗号分隔。并且反斜杠\
允许在下一行继续(因此,实际上只有一行具有大的绘图命令)
但是,没有必要使用gnuplot生成postscript文件,然后将其转换为PDF。 gnuplot可以直接生成PDF:
set terminal pdfcairo mono dashed size 8in, 11in
set output "foo.pdf"
plot sin(x), cos(x)
unset output
在这里,我添加了选项来生成DIN A4纸张尺寸,黑色/白色而不是彩色,以及虚线。有很多选项,请在gnuplot中使用help pdfcairo
先决条件列表必须在一行中给出。但是就像在gnuplot中一样,你可以使用\
来跨越多行:
plot: result1.data \
result2.data \
result3.data \
result4.data \
result5.data
gnuplot simulation.gplt
ps2pdf simulation.ps
rm -f simulation.ps
evince simulation.pdf
这正是错误消息告诉您的内容:它希望处理规则" plot"。 results1.data已经存在,然后,它尝试在第二行运行命令,即results2.data
。由于这不是一个命令,你会得到错误。
另一个问题是make必须在每个命令行前面都需要一个制表工具,而不仅仅是空格。确保你的编辑器插入标签,很多人喜欢插入四个空格! (此处无法检查此错误,因为此处不显示选项卡。)