我有这段代码
int draw_cell_bary(char *filename, char *filenameOutput, int format){
char buff[500];
FILE *f;
char draw_name_file_pattern[] = "%s%s%s%s%s";
f = popen("gnuplot", "w");
//sprintf(buff, draw_name_file_pattern ,"plot '",filename,"' with lines,' \n set term postscript\n set output \"",filenameOutput,"\"\n replot\n");
switch(format){
case 1:
sprintf(buff, draw_name_file_pattern ,"plot '",filename,"' \n set terminal png\n set output \"",filenameOutput,"\"\n replot\n");
break;
sprintf(buff, draw_name_file_pattern ,"plot '",filename,"' \n set term postscript\n set output \"",filenameOutput,"\"\n replot\n");
case 2:
break;
}
fprintf(f,"%s", buff);
fflush(f);
pclose(f);
return 1;
}
此代码工作正常,但当我使用它创建绘图时,窗口会出现在弹出窗口中,并立即关闭。 我希望gnuplot中的窗口保持隐藏状态,并且创建输出而无需用户查看。
我找到了--noraise,但我不确定这是不是我想要的。
由于
答案 0 :(得分:0)
plot
命令是你发送给gnuplot的命令中的第一个命令 - 由于默认终端没有被更改,gnuplot会显示在屏幕上,然后消失。
如果在plot
之后移动set terminal ...; set output
命令,则窗口将不会出现,您将不需要replot
命令。