2014-12-24 5 views
1

이 같은 데이터의 무리가 있습니다분할 열을 기반의 gnuplot에서 선

0 0 50.5 -3.39358e-05 
0 0 150.5 5.11472e-06 
0 0 250.5 -3.87604e-06 
0 0 350.5 -2.54219e-05 
0 0 450.5 3.92257e-06 
0 0 550.5 0.00198317 
0 0 650.5 -4.96953e-05 
0 0 750.5 -3.60458e-05 
0 0 850.5 -2.30878e-05 
0 0 950.5 1.67545e-07 
1 0 126.5 4.17028e-05 
1 0 226.5 -1.43637e-05 
1 0 326.5 1.42918e-06 
1 0 426.5 1.18147e-05 
1 0 526.5 0.0020478 
1 0 626.5 1.58651e-06 
1 0 726.5 3.18537e-05 
1 0 826.5 2.47536e-05 
1 0 926.5 -4.20655e-05 

내가의 gnuplot에 이런 일을 플롯 할 :

plot file using 3:($4+$1*factor) with lines 

그러나 이것은 나에게 하나를 제공을 모든 데이터에 대한 연속 선. 고유 한 값인 $1마다 하나의 행을 원합니다. 예를 들어, 모든 데이터에 대해 하나의 연속 선이있는 경우 $1=0을 입력하고 $1=1을 입력하면됩니다. 선에 그러한 단절을 어떻게 추가 할 수 있습니까?

당신은 첫 번째 열에서 값이 변경이 (Windows에서 작동하지 않습니다) 때마다 빈 줄을 추가 전처리에 데이터를 외부 도구를 사용할 수 있습니다
+0

데이터가 모두 같은 구조이고 '$ 1 = 0'과 '$ 1 = 1'의 줄이 같은 경우'plot' 명령에서'every' 키워드를 사용할 수 있습니다. – DragonHu

답변

1

:

plot '< awk ''{if(x!=$1) {print ""}; x=$1;print}'' test.dat' using 3:($4 + $1*factor) 

데이터 파일의 빈 줄 gnuplot이 분리 된 데이터 포인트를 연결하는 것을 방지합니다.

+0

그 덕분에 많이 작동합니다. –

+0

awk에서 당신이했던 것을 얻으 려하지만, gnuplot이 그것을 해석하는 방법을 말해 줄 수 있습니까? –

+0

'<'는 gnuplot에게 다음 쉘 표현식이 표준 출력에 쓰는 데이터를 얻도록 지시합니다. – Christoph

관련 문제