Gnuplot에서 Tikz Error Bar로 데이터 파일 형식을 변경하는 방법

Gnuplot에서 Tikz Error Bar로 데이터 파일 형식을 변경하는 방법

Gnuplot 오류 표시줄 데이터 형식을 LaTeX/Tikz 형식으로 변경하고 싶습니다.

예를 들어 Gnuplot 형식의 데이터는 다음과 같습니다.

5 74.92725 74.7028332590511 75.1516667409489
112.5 112.55897 112.259769398083 112.858170601917
150 149.69954 149.34363510537 150.05544489463
187.5 187.17666 186.776888667849 187.576431332151
225 224.99652 224.445862626087 225.547177373913
262.5 262.41776 261.885021624469 262.950498375531
300 292.136265549781 292.001497790752 292.271033308809
337.5 291.919651585991 291.609116120618 292.230187051365
375 291.422462501904 291.176186050372 291.668738953436
412.5 291.280355443992 290.980439760169 291.580271127815
450 291.280355443992 290.980439760169 291.580271127815

나에게 필요한 Tikz 형식은 다음과 같습니다.

(75     ,74.92725 )         -=(0,74.7028332590511- 74.92725 )        +=(0, 75.1516667409489 - 74.92725 )    
(112.5  ,112.55897)         -=(0,112.259769398083- 112.55897)        +=(0, 112.858170601917 - 112.55897)    
(150    ,149.69954)         -=(0,149.34363510537 - 149.69954)        +=(0, 150.05544489463  - 149.69954)    
(187.5  ,187.17666)         -=(0,186.776888667849- 187.17666)        +=(0, 187.576431332151 - 187.17666)    
(225    ,224.99652)         -=(0,224.445862626087- 224.99652)        +=(0, 225.547177373913 - 224.99652)    
(262.5  ,262.41776)         -=(0,261.885021624469- 262.41776)        +=(0, 262.950498375531 - 262.41776)    
(300    ,292.136265549781)  -=(0,292.001497790752- 292.136265549781) +=(0, 292.271033308809 - 292.136265549781)
(337.5  ,291.919651585991)  -=(0,291.609116120618- 291.919651585991) +=(0, 292.230187051365 - 291.919651585991)
(375    ,291.422462501904)  -=(0,291.176186050372- 291.422462501904) +=(0, 291.668738953436 - 291.422462501904)
(412.5  ,291.280355443992)  -=(0,290.980439760169- 291.280355443992) +=(0, 291.580271127815 - 291.280355443992)

더 명확하게 하기 위해 이러한 결과를 표로 작성했지만 Tikz에는 이것이 필요하지 않습니다.

이런 유형의 파일이 많이 있는데 이를 더 쉽게 만들 수 있는 명령이 있는지 궁금합니다.

인사

답변1

다음과 같이 시도해 보세요:

awk '{printf("(%s, %s) -=(0, %s-%s) +=(0, %s-%s)\n",$1,$2,$3,$2,$4,$2)}'

심지어:

for a in *.gnudata
do
   awk '....' "$a" > "$a".tikzdata
done

관련 정보