gnuplot으로 3차원 그래프 그리기

Posted at 2009/05/31 15:19 // in Tips/Utility programs // by Daniel

image

 

 

plot.txt를 다음과 같이 만듭니다.

1   1   23899.419542
1   2   12610.944833
1   3   8971.098750
...
1   20  8601.175000

2   1   23887.139833
2   2   12471.028667
2   3   9263.998792
...
2   17  8109.114042
2   18  8234.272542
2   19  8234.607792
2   20  8223.569792

3   1   23882.014542
3   2   12674.229583
3   3   9317.152625
...

이렇게 3 개 값이 한 줄에 있도록.

그리고 파일의 맨 첫째줄과 중간중간 빈 줄을 넣어줘야 합니다.(아마 앞의 값이 바뀔 때마다..)

 

그리고 gnuplot을 실행하고 프롬프트에서

gnuplot> splot "plot.txt" with pm3d

이렇게 splot과 with pm3d를 쓰면 됩니다.

 

splot [0:5] [0:20] [24500:25500] "plot0.txt" with pm3d

이렇게 x y z 축 범위를 정해줄 수 있습니다.

크리에이티브 커먼즈 라이센스
Creative Commons License

꼼수로 그린 트레이스 그래프 - gnuplot

Posted at 2009/04/24 15:20 // in Tips/Utility programs // by Daniel

image

4개 쓰레드가 돌고 있는데 언제 다른 쓰레드를 기다리고 언제 일했는지 보고자 했습니다.

다른 방법이 없나 모르겠는데 엄청 삽질했습니다.

gnuplot으로 그리긴 했는데 완전 꼼수

방법은 object rect로 상자 그리고

화면 밖에다가 그래프 그어서 그리기 입니다.

set object 197 rect from 10572.5589,1.6 to  10590.3039,2.4 fc lt 1 lw 0
set object 198 rect from 10600.7679,1.6 to  10603.6261,2.4 fc lt 1 lw 0

이런식으로 object에 일련번호 붙여서 상자 만들어놓고

plot [0:10819.649917] [-1:4] -2

이렇게 plot 영역을 0~10819 세로로 -1~4 로 잡고 그래프는 y=-2로 잡았습니다. 화면 밖이라 그래프는 안나오구요.

추가로

set key off

로 legend 없앴습니다.

눈금 없애기나 마지막 포인트 값 프린트 그런 것도 필요하지만 일단 여기까지만 해도 감지덕지

참고로 pthread_cond_wait을 잡은거라 쓰레드가 스케줄 아웃되었는지 어쩐지는 안나옵니다. 저렇게 빨갛게 다 칠해놨어도 중간에 다른 프로그램이 돌거나 idle로 나간 경우가 있단 얘기. lock이나 세마포어도 안나오는 거구요

상자 색깔은 fc lt 다음에 숫자로 나타냅니다. 아마 논문서 나오는 게 이런걸로 한 거 같네요. 라인 타입이 대시면 흑백으로 대시로 나오나봅니다.

image
lw는 line width입니다. 테두리 없는 게 예쁘길래 0 으로 했죠

gnuplot 실행뒤에

load "plot_cont.txt"

로 불러와도 되고

$ gnuplot -persist "plot_cont.txt"

로 셸에서 입력해도 됩니다.

저 그림을 나오게 하는 plot 파일입니다.

참고 페이지
http://gnuplot.sourceforge.net/demo/rectangle.html
http://nucl.sci.hokudai.ac.jp/~ohnishi/Lib/gnuplot.html
http://coffeenix.net/doc/gnuplot/gnuplot.html

크리에이티브 커먼즈 라이센스
Creative Commons License

gnuplot 간단사용법

Posted at 2008/04/21 10:10 // in Tips // by Daniel

정말 단순한 점 그래프만 그릴거라면

텍스트 파일에 컬럼으로 쭉 덤프된 파일 만들고

$ gnuplot


#gnuplot 프롬프트에서

# plot "dump.txt" u 1:2 title "column2", "dump.txt" u 1:3 title "column3"

이런식으로 쓰면 됨.

image

이 그림은

plot "r30.txt" u 1 title "best", "r30.txt" u 2 title "average"


plot 커맨드를 파일에서 입력해 그리고자 한다면

echo "plot \"${PLOT_FILE}\" u 1 title \"best\", \"${PLOT_FILE}\" u 2 title \"average\"" > plot.cmd
gnuplot -persist plot.cmd

이런식으로 하면 된다.

-persist는 플롯을 그리고 나서 종료되어도 플롯 그림은 그대로 남아있게 하는 옵션이다.

크리에이티브 커먼즈 라이센스
Creative Commons License