2013-10-19 7 views
1

gnuplot 4.6을 사용하고 있습니다. 또한 비슷한 질문이 1 년 전의 질문보다 많음을 알고 있습니다. here. 그 대답은 작은 bash 스크립트를 작성해야합니다. 특히 gnuplot-4.6에 멋진 기능이 추가 된 경우 gnuplot 스크립트에서이를 달성 할 수 있는지 알고 싶습니다.Gnuplot에서 빈 파일 건너 뛰기

set xrange[xL:xU] 
set yrange[yL:yU] 
plot "file1.dat" using 1:2 w l lt 1 lw 1 lc 3,\ 
"file2.dat" using 1:2 w l lt 1 lw 1 lc 3 

내가 루프에서 위의 과정을 반복하고하고 xrange & yrange 매개 변수는 각 반복에서 업데이트 될 : 나는 이런 식으로 뭔가를 달성하기 위해 노력하고 있습니다. 또한 각 반복의 출력을 일부 이미지 파일로 저장합니다. 이제 file2.dat은 모든 반복에서 몇 가지 포인트를 갖게됩니다. 하지만 이것은 file1.dat에 해당하지 않습니다. 따라서, 이 비어있는 경우에 대비하여 file1.dat을 플로팅하는 것을 건너 뛰고 싶습니다. 내 경우에는 file1.dat에서 점이 표시되지 않는 것이 좋습니다.

if 문을 사용하면 쉽게 파일을 얻을 수 있습니다. gnuplot에 파일에 점이 없는지 감지하고 음모를 꾸미지 말아야합니다. 이 경우, 위의 코드는 다음과 같이 표시됩니다

set xrange[xL:xU] 
set yrange[yL:yU] 
if ("file.dat" not empty){ 
plot "file1.dat" using 1:2 w l lt 1 lw 1 lc 3,\ 
    "file2.dat" using 1:2 w l lt 1 lw 1 lc 3 
}else { 
plot "file2.dat" using 1:2 w l lt 1 lw 1 lc 3 
} 

나를 상기 if 문의 'condition'을 공식화 도와주세요.

감사 & 건배

Abhinav

+0

파일이 존재하는 경우 gnuplot 전용 메서드로 검사 할 수 없습니다. 이것을하기 위해 어떤 종류의 도우미 스크립트가 필요합니다. 그런데 왜 문제가됩니까? plot 명령은 경고를 내고 그 명령을 실행합니다. – Christoph

+0

하나의 파일에 범위 내 포인트가 없더라도 범위 내 포인트가있는 다른 파일을 플롯하려고합니다. – Abhinav

+0

당신이 옳습니다! 필자는'plot' 명령은 누락 된 파일을 건너 뛰기 만한다고 생각했지만 그렇지 않았습니다. – Christoph

답변

0

난 단지 gnuplot 명령을 사용 된 해킹을 찾을 수 없습니다. 결과적으로 shell의 도움을 받아서 file1.dat에 데이터 행이 있는지 없는지 확인하고 있습니다. 누군가가 나에게 gnuplot 명령 유일한 방법을 제공 할 수 있다면 난 아직도 감사하게 될 것입니다

if(system("awk '{x++}END{ print x}' file1.dat")>0){ 
    plot "file1.dat" using 1:2 w l lt 1 lw 1 lc 3,\ 
    "file2.dat" using 1:2 w l lt 1 lw 1 lc 3 
}else{ 
    plot "file2.dat" using 1:2 w l lt 1 lw 1 lc 3 
} 

:

gnuplot 스크립트 파일의 상태처럼 보일 것이다.