Tuesday, June 12, 2007

[pst-spectra]LaTeX으로 스펙트럼을 그리자.

http://tug.ctan.org/tex-archive/graphics/pstricks/contrib/pst-spectra/

에서는 pstricks을 이용하여 스펙트럼을 그릴 수 있는 pst-spectra를 얻을 수 있다.

설치방법 :
pst-spectra.sty
pst-spectra.tex
pst-spectra.pro
3개의 파일을 받아서 Latex이 찾을 수 있는 디렉토리에 넣는다. - TeX/LaTeX/ 등..
위 3개의 파일을 LaTeX이 찾을 수 있는 디렉토리에 넣는다. -TeX/LaTeX 등에..
그 중 pst-spectra.pro 파일은 $TEXMF$/dvips/pstricks/ 에 넣는다.

---------------------------------------------------
참고로 fedora7의 경우,

pst-*.tex 파일들은 /usr/share/texmf/tex/generic/pstricks/
pst-*.sty 파일들은 /usr/share/texmf/tex/latex/pstricks/
pst-*.pro 파일들은 /usr/share/texmf/dvips/pstricks/

에 모여있다.
-------------------------------------------------

pst-spectra는 xkeyval 매크로를 사하는데, kile에는 이미 설치되어 있다.


주의할 점 - do not load another package after pst-spectra, which loads
the old keyval.sty or pst-key.tex


짧은 예시

\usepackage{pst-spectra}
...

\psspectrum
\psspectrum[element=Fe]
\psspectrum[absortption, element=Fe2+]
...

잘 안되네..쩝...
문제가 뭐징..

Monday, June 11, 2007

[paper] paper reading

  • Dapmed Ly alpha survey review http://arxiv.org/PS_cache/astro-ph/pdf/0505/0505479v1.pdf
  • Rapid X-ray variability review http://arxiv.org/PS_cache/astro-ph/pdf/0410/0410551v1.pdf

[unix, linux] 명령어가 가물가물하다.

.
이럴 땐 이곳을 찾아라~

COMPUTERHOPE.com

[ds9] brand new SAOImage DS9 !!

SAOimage DS9 is an astronomical imageing and data visualization application. DS9 supports FITS images and binary tables, multiple frame buffers, region manipulation, and many sclae algorithms and colomaps. ....

설치할 필요도 없이 다운받은 다음,
root 권한으로 /usr/local/bin/ 이나 /usr/bin/ 에 복사해 놓으면 된다.

실행은

] ds9 &

Monday, June 4, 2007

Doppler Imaging - Stellar Activity

[ Stellar Activity Group ]

Prof. Klaus G. strassmeier


Tuesday, May 29, 2007

[linux] 설치기

페도라 다운받는 사이트 ( i386)
http://torrent.fedoraproject.org/

Thinkpad T60에 페도라 설치
http://www.thinkwiki.org/wiki/Installing_Fedora_7_on_a_ThinkPad_T60


UBUNTU 다운로드 사이트
http://www.ubuntu.com/getubuntu/downloading?release=desktop-newest&arch=i386&mirror=http%3A%2F%2Fmirror.cc.columbia.edu%2Fpub%2Flinux%2Fubuntu%2Freleases%2F&debug=%5B%27country_US%27%2C+%27country_UK%27%2C+%27continent_NA%27%5D&download-button=

UBUNTU 에 iraf설치

http://mjhutchinson.com/journal/2006-11-05/install_iraf_on_ubuntu_edgy_amd64

Sunday, May 6, 2007

[latex] latex editor on linux, KILE

1. install
1) fedora : using yum
yum install kile
2) ubuntu : using apt
apt-get install kile

2.

KBibTeX

Monday, April 30, 2007

Wednesday, April 25, 2007

LATEX에서 그림을 그리자.

레이텍의 문제점은 그림을 그리기가 어렵다는 것이었는데,
차츰 이 문제는 해결이 되어가고 있는 듯 하다. 아래것들을 시도해 보자.

1. DIA 라는 다이어그램 그리는 프로그램.
2. KTUG의 질답
3. http://www.fauskes.net/pgftikzexamples/




오~ 이런것이 가능하단 말인가....!!!! TeX 너무 멋지다!!

정복하고 싶은 마음이 굴뚝같이 솟아오르고 있다. 하지만...

방학 때 까지 참아야 된다.... ^^

Tuesday, April 10, 2007

[Fortran] LAPACK의 사용 예제

http://www.nag.com/lapack%2Dex/

이곳에서 프로그램을 찾을 수가 있다.

lapack과 nag에서 제공하는 exteras 라이브러리가 필요하다.

Monday, April 9, 2007

[GMOS] 파장 동정용 CuAr 이미지

.


http://www.gemini.edu/sciops/instruments/gmos/gmosIndex.html

왜 이렇게 다르지???
오랫만에 하려니까 잘 안 되는 듯 하다..쩝..

Sunday, March 25, 2007

[ Paper list I ] X-ray Binary Stars

.
Hynes et al 2003, MNRAS 340, 447
Hynes et al 2002, MNRAS 330, 1009
Shahbas et al 2003, MNRAS 346,1116
Hynes et al 2004, ApJ 611, L125
Zurita eta al 2004, MNRAS, 352, 877
** Shahboz et al 2004, MNRAS 354, 32
Shahboz et al 2005, MNRAS 362, 975
Zurital et al. 2003, ApJ 582, 369
Reynolds et al 2007, MNRAS, 374, 675

Wednesday, March 21, 2007

[Fortran Library] LAPACK, NAG

.

LAPACK -- Linear Algebra PACKage




Fortran의 장점 강력한 라이브러리, 수 십년간 만들어진 라이브러리가 가장 큰 Fortran의 매력인 것이다. - 사실 그건 아닌것 같다. 요즘나오는 IDL이나 Python 같은 경우에도 수 많은 라이브러리가 구축되어 있다. 그 중 IDL이야 말로 확장성이 정말 강력한 프로그램이다. 하지만, FORTRAN은 그 어원 ( Formular Translator 수식 번역기) 에서 알 수 있듯이 수식을 옮기기에 최적화 되어 있다는 점이다. Fortran이 처음만들어진것은 60~70년대이지만 아직까지도 진화하고 있다. 참고로 내가 사용하는 Fedora Core6에서는 F95를 기본으로 탑재하고 있다.

이번에 소개하는 것은 FORTRAN이나 C에서 사용할 수 있는 선형대수 라이브러리다.

http://www.netlib.org/lapack/


LAPACK is written in Fortran77 and provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. The associated matrix factorizations (LU, Cholesky, QR, SVD, Schur, generalized Schur) are also provided, as are related computations such as reordering of the Schur factorizations and estimating condition numbers. Dense and banded matrices are handled, but not general sparse matrices. In all areas, similar functionality is provided for real and complex matrices, in both single and double precision.

If you're uncertain of the LAPACK routine name to address your application's needs, check out the LAPACK Search Engine.


설치법 : 소스를 받아 컴파일 할 수도 있고, 리눅스 배포본에 있는 RPM으로 설치 할 수도 있다. f90, f95용이 따로 있으므로 자신의 FORTRAN 컴파일러에 맞는 녀석을 설치하면 되겠다.

사용법 : 설치가 잘 되었다면, http://www.nag.com/lapack-ex/lapack-ex.html 에 나와있는 예제를 참고하여 프로그램을 작성한 뒤, 컴파일 시에
] f95 filename.f -llapack

으로 컴파일 하면 된다. 단 주의할 점은 예제에 있는 프로그램은 NAG에서 만든 패키지도 포함하고 있기때문에, EXTERNAL 을 잘 살펴보아서 어떤 외부프로그램들이 사용되었는지 살펴본 뒤,
LAPACK에 포함되지 않은 것들은 HERE (EXTRAS) 에서 추가로 필요한 프로그램들을 받아서 사용하자.

LAPACK 루틴들의 이름은 XYYZZZ 로 만들어졌는데, X는 변수들의 형식, YY는 매트릭스의 형태, ZZZ는 어떤 계산을 수행하는지에 따라 정해진다.

쉽게 예를 들면. X 위치에 S,D, C, Z 가 올 수 있는데 각각 REAL, DOUBLE PRECISION, COMPLEX, COMPLEX*16의 변수 형태를 뜻한다. 좀 더 자세한 내용은 아래글을 참조하자.

http://www.netlib.org/lapack/lug/node24.html



자 이제 FORTRAN에 날개를 달자, LAPACK과 함께 어떤 계산이든 해낼 수 있을 것이다. 나의 작은 바램이지만,....

LAPACK은 복잡한 계산을 수행하는데 그 바탕에는 BLAS가 있다. 이것의 설명은 IBM에서 잘 만들어 놨는데, 자..놀러가보자. 클릭

앞으로는 FORTRAN95의 사용법을 알아봐야겠다. 이번에 알게 되었는데, 훨씬 더 진화한 듯 보인다.

Thursday, March 15, 2007

V616 Mon Longslit data reduction :1

오랫만에 만난, Dr. Hynes 그와의 대화에서..



1. apall에서 extract 된 그림에서의 문제, cosmic ray가 해결되지 않았다. 그래서, apall의 변수중 weight를 줘야한다고 한다. 관련 논문:

AN OPTIMAL EXTRACTION ALGORITHM FOR CCD SPECTROSCOPY

KEITH HORNE
1986PASP

두 번째 그림을 보면, 최적화시켰을 때 노이즈가 줄어들고, cosmic-ray가 사라짐을 볼 수 있다.

2. 관측시에 별빛을 모으기 위해 slit을 넓게 잡았는데 이 때문에 arc영상이 엉망이다. 보통은 가우시안의 형태로 방출선이 가우시안의 형태를 보여야 하는데, 각진 네모난 형태를 보이게 된다. 주어진 자료에는 하나의 arc영상이 가우시안 형태를 보이는데, 자료를 살펴보아서, 망원경의 포지션이 V616Mon와 같다면 사용해도 된다고 한다.

역시 수 많은 경험에서 우러나오는 답변이었다. 정말 많은 시간을 연구에 보낸 듯했다. 보자마자 원인이 슈~욱하고 나온다. 우아~...

자...~!!
아직 짤리지 않았다. ㅋㅋ. 가자~!!

Monday, January 29, 2007

WINDOWS에서 FORTRAN77를 사용하자.



GNU Fortran G77 v0.5.25

(G77 v.2.95 for MinGW32)

Binaries for Win32

(Windows 95/98/Me and Windows NT4/2000/XP)

August 12, 1999

좀더 자세한 글은 위의 원문페이지를 참고하세요. 간단하게 파일 설명과, 설치. 설치 후 PATH설정에 관해서만 얘기하도록 하겠습니다. -시간이 없어요. 수업들어가야 되서..

The set consists of the following files:

  • g77exe.zip (1.54Mb), the archive that contains the compiler,linker and ancillary executables
  • g77lib.zip (208Kb), the archive that contains the G77 libraries
  • g77doc.zip (301Kb),the archive that contains the G77 documentation. Note that this documentation is in HTML format, so it can be read using any web browser such as Netscape or Microsoft Internet Explorer.

(If you encounter problems in retrieving any of the files above, please contact me by email

- 설치하기
1. 다운로드한 파일들을 풀면, 자동으로 G77과 하위 폴더 Bin, Lib, Doc들이 생기게 된다.
2. 원하는 곳으로 G77디렉토를 옮겨주고, g77setup.bat 을 메모장따위로 열어 디렉토리 위치들이 잘 정의 되는지 확인하고 g77setup.bat 를 실행시킨다.
G77\Readme1.txt 를 읽어봐도 되지만.

Installation Steps

All the above ZIP archives should be un-zipped with the free unzip.exe utility (115Kb. Download the file unzip.zip and rename it to unzip.exe) . This utility will preserve both, the folder structure of the archives and the long filenames that some of the library files have. Typically, unzipping the files in, say, the drive C: will create the folder C:\G77 with the three sub-folders C:\G77\Bin, C:\G77\Lib and C:\G77\Doc. Futher instructions are supplied in the file C:\G77\Readme1.txt

Wednesday, January 24, 2007





목록열기 전체목록 (8)





gnuplot 메뉴얼 ns-2

2004/09/06 18:49

http://blog.naver.com/opps/20005523667

gnuplot Simple Manual


출처 : http://my.netian.com/~770110cat/gnuplot.html
글쓴이 : 야옹고양이(cybercat) =^.^=

※ 본 내용은 Colleage of Natural Sciences Computing Laboratories University of Northern Iowa Cedar Falls, IA 50614에서 작성한 Introduction to gnuplot을

우리 현실에 맞게 옮긴 것입니다. 충남대학교 물리학과 오병성 교수님이 개략적으로 옮기신 내용을 다시 한번 알기 쉽게 올린 것입니다. = ^.^ =

[ GNUplot 의 초기 화면 ]

: GNUplot은 2차원 및 3차원 그림표를 그릴 수 있는 명령어를 입력하는 형식의 프로그램(command line driven program)입니다. Mathematica나 MatLab과 같은 프로그램도 있으나 학생들이 사용하기에는 매우 비싼 프로그램이라 하겠지요. 하지만 GNUplot은 Linux 환경에서 개발된 프로그램으로써 free-software입니다. 웹상에서 쉽게 구하실 수 있으며 그 용량 또한 매우 적습니다.

: GNUplot은 위의 그림과 같이 몇 개 않되는 화일로 구성되어 있습니다. demo 폴더에는 임의의 예제 파일이 들어 있으므로 제외하면 더 작겠죠? ^^; 그림에서 보는 바와 같이 그 크기는 demo 파일 포함 1.97MB로 되어 매우 작습니다. 하지만 위에서 재시한 고가의 프로그램과 견주어 그 성능이 뒤지지 않는다고 저는 생각합니다. 물론 위에서 제시한 고가의 프로그램에 비해서 떨어지는 기능들이 있기는 하지만 초보자들이 쉽게 무난하게 사용할 수 있는 프로그램이라 하겠습니다. 그럼 지금부터 GNUplot에 대한 간단한 설명과 예시를 들어서 쉽게 사용하실 수 있도록 하겠습니다.

▨ 목 차 ( Index )

1. Windows용 GNUplot ( GNUplot for Windows )

2. Windows OS에 GNUplot 설치하기 ( Installing GNUplot on your Windows OS )

3. GNUplot 시작하기와 끝내기 ( Starting and Quitting GNUplot )

4. GNUplot에서 함수 사용하기 ( Specifying Functions in GNUplot )

5. 간단한 예제 ( A Simple Example )

6. 2차원 그림표 ( 2D plots )

7. 3차원 그림표 ( 3D plots )

(1) 3차원 그림에서의 보이지 않는 선 숨기기 ( Hidden 3D View )

(2) 3차원 그림에서의 해상도 높이기 ( Increasing Resolution of 3D Plots )

(3) 등고선 표시하기 ( Adding Contour Lines )

(4) 조망 바꾸기 ( Changing Perspective )

8. 매개 변수 그림표 그리기 ( Parametric Plots )

9. 극좌표 그림표 ( Polar Plots )

10. 자료 그리기 ( Plotting Data )

(1) 2차원 자료 그리기 (2D Data Plots )

(2) 3차원 자료 그리기 ( 3D Data Plots )

11. 출력 만들기 ( Generating Output )

(1) 프린터로 직접 인쇄하기 ( Printing directly to a printer )

(2) Postscript file로 출력하기 ( Outputing to a postscript file )

(3) Graphic file로 출력하기 ( Outputing to a graphics file )

12. 쓸 만한 요령 ( Nifty Tricks )

(1) file로 작업 저장 또는 시작하기 ( Saving and Loading work from files )

(2) Log scale 사용하기 ( Using a Log Scale )

(3) 그림표에 눈금 격자 나타내기 ( Displaying a grid behind graph )

(4) 여러 그림표 겹쳐 보이기 ( Overlaying Multiple Plots )

(5) 선의 모양 바꾸기 ( Changing style of lines )

(6) 수식 값 계산하기 ( Evaluating Expressions )

(7) 함수 정의하기 ( Defining your own functions )

(8) 변수 바꾸기 ( Changing variables used )

(9) 축 이름 바꾸기 ( Changing axis labels )

(10) 그림표의 외관 바꾸기 ( Changing general apperance of plot )

: 프로그램 내부에 온라인 설명서가 있으니 필요할 때는 명령어로 help를 넣으면 됩니다.


1. Windows용 GNUplot ( GNUplot for Windows )

: Windows 용 GNUplot의 설정은 다른 프로그램과 같이 복잡하지 않다. 물론 Windows 용 다른 프로그램 들로 Setup 툴로써 매우 간단하게 되어 있지만 내부적으로 보면 상당히 복잡하다 할 수 있다. 하지만 Windows 용 GNUplot은 단순히 원하는 디렉토리를 만들고 GNUplot용 파일들을 옮기기만 하면 된다. 특별히 설정을 해야 한다거나 한 것은 없다. 단순히 GNUplot용 파일들을 한 디렉토리에 복사해 넣기만 하면 되는 것이다. 다만 다른 것은 Windows 95부터 도입이 되던 긴 파일이름의 지원은 되지 않는다. 즉, 8자보다 긴 파일의 이름은 사용할 수 없다. 사용하더라도 파일 이름은 8자 글자수의 안에서 "~숫자"의 형태로 나타나게 된다. 즉, DOS 형태의 파일명을 따르는 것이다.

2. Windows OS에 GNUplot 설치하기 ( Installing GNUplot on your Windows OS )

: 위의 1번의 내용을 살펴보면 된다. 끝~ *^^*

3. GNUplot 시작하기와 끝내기 ( Starting and Quitting GNUplot )

: 명령어 라인에 "exit" 나 "quit"를 넣고 엔터를 치면 종료가 된다. 시작과 끝은 다른 윈도우용 프로그램과 동일하다 하겠다. 다만 명령어로 종료를 하는 것이 있을 뿐이다.

4. GNUplot에서 함수 사용하기 ( Specifying Functions in GNUplot )

: 표현하려는 함수가 2차원 일 경우 독립변수는 x로, 3차원 일 경우는 독립변수가 x, y 2가지가 쓰인다. 산술 연산자로는 곱하기는 *, 나누기는 /, 지수는 **가 쓰인다. 즉, 3x는 3*x와 같이 표현하면 된다. GNUplot에는 여러 가지 내장된 함수들이 있다. 더 자세히 보려면 help functions를 명령어에 넣고서 엔터를 치면 된다. 예를 들어보자. 일반적인 표준 삼각 함수는 우리가 사용하는 그대로 sin, cos, tan로 쓰이며, 일반적인 pi = 3.14159는 pi라는 명령어를 사용하면 된다. 역 삼각함수는 asin, acos, atan 이고, hyperbolic 삼각함수는 sinh, cosh, tanh 이다. 그리고 exp는 e, 그리고 밑수가 e인 로그함수는 log, 보통의 경우는 ln을 사용한다.

5. 간단한 예제 ( A Simple Example )

: 자 그러면 여기서 간단한 예제를 살펴 보도록 하자. GNUplot 프로그램을 실행시킨 후 plot sin(x) 라고 넣은 후 실행시켜보도록 하자.

: 그러면 위의 그림과 같은 새로운 창이 결과물을 나타내어 줄 것이다. 그리고 GNUplot에서는 사용한 명령어들이 저장이 되므로 위아래 화살표를 누름으로써 명령어들을 다시 아주 간단하게 넣을 수 있다. 나머지 예들은 직접 한번 해 보도록 한다. ^^;;;

6. 2차원 그림표 ( 2D plots )

: 자 그러면 이제 2차원 그림표에 대해 더 알아보도록 하자. 2차원 그래프를 나타내기 위해서는 간단하다. "plot 원하는 함수"의 형식으로 명령어 입력란에 넣은 후 엔터를 치기만 하면 된다. 예를 들어 x^3의 그래프를 얻어 보도록 하자.

: 위의 그림과 같은 그래프를 쉽게 얻을 수 있을 것이다. *^^* GNUplot은 그 그래프의 구간을 자동으로 잡는다. 하지만 우리가 원하는 구간을 얻기 위해서는 구간을 어떤 부분을 할 것인지 입력해 주어야 한다. cosh(x) 그래프를 x 구간은 -10~10, y 구간은 0~12000 으로 나타내어 보자.

: 매우 간단하다. 위의 그림에서와 같이 사용법은 plot 이라는 명령어후에 구간을 넣어 주도록 한다. 즉, "plot [x의 구간][y의 구간] 표현하려는 함수" 와 같은 형식으로 넣어주면 된다. 예를 들어, x의 구간은 자동으로 잡고 y의 구간은 0~12000 으로 나타내려고 한다면, 위의 그래프는 "plot [] [0:12000] cosh(x)" 라는 명령어를 사용하면 된다. y의 구간은 자동으로 잡고 x의 구간만을 잡으려고 한다면 "plot [-10:10] cosh(x)" 라는 명령어를 사용하면 된다.

그러면 이제 나타내려는 모든 그래프의 구간을 아예 설정을 해 주려고 한다면 다음과 같다. "set xrange [구간]" 이라는 명령어를 사용하면 된다. 그러면 그 명령어를 선언한 후 부터는 모든 출력 그래프들이 설정된 x구간의 범위에서 나타내어지게 된다. y의 구간을 설정하려면 아시겠죠? ^^; 자, 그러면 다시 자동으로 설정이 되게 만들어 보도록 하자. 매우 간단하다. 명령어에 "set autoscale x 또는 y" 라고 선언해 주면 된다. 매우 간단하지 않은가? *^^*

7. 3차원 그림표 ( 3D plots )

(1) 3차원 그림에서의 보이지 않는 선 숨기기 ( Hidden 3D View )

: 우선 3차원의 그래프를 그려 보도록 하자. 명령어를 2차원에서의 "plot"에서, "splot" 이라는 명령어를 사용하면 된다. 그러면 한번 예제를 보도록 하자. sinh(x) 라는 그래프를 3차원적인 그래프를 얻어 보도록 하자.

: ㅋㅋㅋ 여전히 간단하지 않은가? ^^;;; 자아 그러면 좀더 화려한 그래프를 보도록 하자. z = 2(x^2 + y^2)exp(-x^2 -y^2)의 그래프를 x, y는 -2~2의 구간에서, z는 -1~1 사이에서의 그래프를 나타내어 보도록 하자.

: 아~ 이것도 너무 간단하지 않은가? ^^;;; 자아 그러면 이 그래프에서 가려지는 부분은 실제로 우리가 본다면 보이지 않을 것이다. 이 그래프는 그 보이지 않는 부분까지 나타내어 주고 있다. 그 보이지 않는 선을 한번 없애보도록 하자. 그 내용 또한 무쟈게 간단하당~ *^^*

: 여기에서 사용된 명령어는 우선 보이지 않는 선을 나타내지 않기 위해서 "set hidden3d" 라는 명령어를 사용하였고, "replot" 이라는 명령어가 사용되고 있다. 보이지 않는 선을 감추기 위함이 첫 번째 명령어이다. 영어를 조금만 한다면 쉽게 알 것이다. 그리고 다음 명령어는 GNUplot은 replot 이라는 명령어로 마지막으로 나타낸 그래프를 replot 이라는 명령어로 다시 나타낼 수 있다. 하지만 그 설정들은 지금까지 설정해 온 것이 적용이 된다.

(2) 3차원 그림에서의 해상도 높이기 ( Increasing Resolution of 3D Plots )

: 자아 위의 그림을 보면 그래프에 각이 져있어서 그리 매끄러운 그래프가 아닐 것이다. 그러면 이 그래프를 매끄럽게 만드는 작업을 해 보도록 하자. 쩝 이것또한 매우 간단하다. 무쟈게~ *^^* 즉 해상도를 높인다고 한다.

: 자아 어떠한가? 간단하지 않은가? ㅋㅋㅋ ^^;;; 우선은 해상도 조절을 위해서 "set isosamples" 라는 명령어를 사용한다. 3차원인 경우이다. 형식은 즉 "set isosamples x_rate, y_rate" 라는 형식을 가지면 된다. 2차원인 경우 "set samples" 라는 명령어를 사용하면 된다. 즉 "set samples x_rate" 이다. 해상도의 결정은 즉 독립 변수의 숫자로써 조절을 하게 된다. 2차원인 경우 x의 숫자를 넣어주고, 3차원인 경우 x와 y의 숫자를 넣어준다. 그리고 해상도를 높임으로써 그래프 표면의 등고선의 갯수가 늘어남을 볼 수 있을 것이다. 좀 그래프가 징그럽기도 하다. ^^;;; 이 해상도는 GNUplot 이 실행되면서 초기값(default value)을 가지고 있다. 그 값은 10이다. 이 해상도가 늘어나면서 그래프를 표현하는 시간이 길어지게 된다. 그만큼 컴퓨터가 일을 해야 한다는 것이다. 해상도는 가능하면 100을 넘기지 않도록 한다. 100을 넘으면 필자가 해 본 결과 뭐 요즘 컴퓨터가 성능이 좋으니 시간은 상관 없으나 그래프에서 그리 커다란 차이점을 느끼지 못한다.

(3) 등고선 표시하기 ( Adding Contour Lines )

: 자아 그러면 이제 그래프에 등고선(Contour)을 표시해 보도록 하자. 등고선은 3가지로 나타낸다. 첫째, 표시하지 않기, 둘째, 그래프의 표면에 표시하기, 셋째, 마치 위에서 빛을 밝혀 주듯이 바닥에 나타내어 주기 이다. 자아 우선은 그래프의 표면에 나타내어 주도록 하자.

: 명령어는 다음과 같다. "set contour 형식" 이다. 형식으로는 나타내지 않을 경우, nocontour, 표면일 경우 surface, 바닥일 경우 base 이다. 위의 경우는 우선은 해상도를 초기값인 10으로 해 주고, 표면에 나타내 주기 위해서 "set contour surface" 명령어를 사용해 주었다. 그래프에 잘 나타나지는 않았지만 표시된 숫자를 보도록 하자. 화면의 오른쪽 상단이다. 그래프 선의 색깔과 숫자가 있을 것이다. 우리가 쉽게 짐작할 수 있듯이 그래프의 선 색에따른 값을 표시한 것이다. 자 그러면 이제는 등고선을 바닥에 나타내 보도록 하자.

: 여기서 의미하는 바닥이란 독립 변수가 이루는 평면을 말한다. 즉, x-y 평면을 말한다. 등고선은 3차원 그래프에서만 나타나는 것이다. 그러면 이제는 등고선을 없애 보도록 하자.

: 아주 간단하지 않은가? ^^;;; 위의 그래프에서는 등고선이 표면에 나타난 경우와 없는 경우가 차이가 없어 보일 것이다. 하지만 다른점이 있다. 그래프 특성상 그것이 잘 나타나지 않았을 뿐이다.

(4) 조망 바꾸기 ( Changing Perspective )

: 얼핏 보기에 이 말이 이해가 가지 않을 것이다. 하지만 간단하다. 즉, 관찰자의 시점을 바꿔주는 명령어라 생각하면 된다. 그 형식은 다음과 같다.

"set view horizontal_angle, vertical_angle, zoom_rate""

이것은 좌표축을 조금 이해해야 할 듯 하다. 첫 번째 인자는 수평각을, 두 번째 인자는 수직각을, 세 번째 인자는 확대 비율을 나타낸다. 말이 조금 어려움으로 예제를 통해서 알아보도록 하자.

: 우선은 보이지 않는 면을 감추기 위해서 "set hidden3d", 그리고 해상도를 "set isosamples 30" 으로 맞춘후, 그래프의 x-y 구간을 위와 같이 설정하고, 함수 z = (x^2 + 3 * y^2) * exp(1 - (x^2 + y^2))을 나타내어 준 것이다. 이 그래프의 관찰자 시점은 GNUplot 이 실행되면서 가지고 있는 초기값(defaule value)로 그려진 것이다. 자아 그러면 이제부터 그 값들을 조금씩 바꿔 가면서 보도록 하자.

: 위의 그래프는 관찰자의 시점을 수평각 80, 수직각 30으로 나타낸 것이다.

: 위의 그림은 관찰자의 시점을 수평각 40, 수직각 30으로 바꿔서 나타낸 것이다.

: 위의 그래프는 관찰자의 시점을 수평각을 60, 수직각을 30, 확대 비율을 2로 나타낸 그림이다. 자아 예제를 통해서 쉽게 이해를 했을 것이다. 수평각 및 수직각이 나타내는 것은 구면극좌표계(Spherical Polar Coordinate)를 따르는 것 같다. 필자의 생각 ^^;;;

8. 매개 변수 그림표 그리기 ( Parametric Plots )

: GNUplot 에서는 매개 변수를 이용한 함수의 표현이 가능하다. 매개 변수를 사용하기 위해서는 우선 "set parametric"을 선언해 주어야 한다. 그리고 매개 변수의 범위를 설정하기 위해서 "set trange [?:?]"를 사용한다. 예를 하나 들어서 알아보도록 하자. 우선 어떤 그래프가 예를 들어서 2차원의 그래프가 나오기 위해서는 x, y의 값이 주어저야 한다. 그런데 이 x, y의 값이 어떤 값에 의해서 변한다고 하자. 바로이 값이 매개 변수인 것이다. x = 5 * cos(t), y = 2 * sin(t) 즉 여기서 t가 매개 변수로 작용하는그래프를 표시해 보도록 하자. GNUplot 에서는 2차원에서 독립 변수로 x가 쓰이듯이 매개 변수로는 t가 사용된다. 그리고 이 t의 범위를 0~10 까지 잡아서 나타내 보도록 하자.

: 위의 그림에서 처음에 "set parametric" 으로 매개 변수의 사용을 선언하고 있다. 그리고 x의 범위를 지정해 주기 위해서 "set xrange [-6:6]", y의 범위를 정해 주기 위해서 "set yrange [-6:6]", 매개 변수 t의 범위를 지정해 주기 위해서 "set trange [0:10]"을 사용하고 있고, 해상도를 조정하기 위해서 "set iso samples 60"을 사용하고 있다. 그리고 마지막으로 표현할 함수를 나타내 주었다. "plot 5*cos(t), 2*sin(t)" 예제를 보고 나니 더 쉽게 이해가 갈 것입니다. ^^

이제는 3차원 매개 변수 그래프를나타내 보도록 하겠습니다. 즉, 매개 변수가 2개인 경우입니다. 위에서와 같은 경우는 2차원 매개 변수의 사용 경우로 변수가 1개가 쓰였고 이 경우는 3차원으로 2개의 매개 변수가 쓰이는 경우입니다. 1개의 매개 변수가 사용될 경우 t를 사용하였지만, 2개의 매개 변수가 쓰일 경우는 변수가 u, v가 사용됩니다. 나머지 사용법은 2차원의 경우와 동일합니다. 자 이번에도 예제를 들어서 알아보도록 하겠습니다. x, y, z의 범위를 지정하고 또 매개 변수인 u, v의 범위도 지정해 나타내 보도록 하겠습니다.

: 위와 같이 각각 매개 변수의 범위를 지정해 주고 또한 각각의 독립 변수의 범위도 주어진 경우입니다. 특별히 다른 설명은 덧붙이지 않아도 되겠지요? ^^;;;

9. 극좌표 그림표 ( Polar Plots )

: 극좌표(Polar Coordinate)를 아용해서 그래프를 그리는 기능입니다. 극좌표에서 독립 변수 t는 보통 theta로 표시하는 각도를 의미합니다. 극좌표의 그래프는 항상 직사각형에 그려지고 그래프의 크기를 바꾸려면 "set yrange" 명령을 사용합니다. 이 명령을 사용하면 수평 및 수직 범위 모두가 바뀌게 됩니다. 예제를 통해서 보도록 하겠습니다.

: 위에서 보시면 우선은 극좌표를 사용하기 위해서 "set polar"를 선언하였습니다. 그리고 다시 원래 상태로 돌아오기 위해서는 "set nopolar"를 선언하시면 됩니다. 다음은 범위를 바꾸는 경우를 보도록 하겠습니다.

: 범위를 다시 자동 설정으로 바꾸시기 위해서는 간단히 "set autoscale y" 하시면 됩니다. 그리고 여기서 쓰이는 독립 변수인 t는 초기값으로(default value) 그 각도의 단위가 radian으로 되어 있습니다. 이 단위를 degree로 바꾸기 위해서는 간단히 "set angles degrees(radians)" 하시면 됩니다.

자 이제는 3차원 극좌표계를 그려보도록 하겠습니다. 이 기능은 두가지가 있습니다. 좌표의 형식에 따라 구좌표계(Spherical Coordinate)와 원통좌표계(Cylindrical Coordinate)가 있습니다. 이 좌표계들이 궁금하시면 저와 접촉하시거나 메일을 보내 주십시오. 3차원 극좌표계를 이용해서 그래프를 나타내기 위해서는 3차원 자료(data)에서만 가능합니다. 자세한 사항은 "help set mapping"을 참조하시기 바랍니다.

10. 자료 그리기 ( Plotting Data )

(1) 2차원 자료 그리기 (2D Data Plots )

: 우선은 자료 파일을 이용하여 2차원 그래프를 그려보도록 하겠습니다. 예제를 통해서 알아보도록 하겠습니다. 아래와 같은 "test.txt" 라는 데이터 파일이 있다고 합시다. 우선은 데이터 파일에서 #표시된 부분은 모두 주석문(comments) 처리 됩니다. 즉 아무런 의미도 아니라는 뜻이지요.

: 그러면 이제 위의 데이터 파일을 이용해서 2차원 그래프를 그려보도록 하겠습니다. 2차원 그래프는 두가지 요소 즉, x, y의 값으로 그래프를 그리지요.

: 위의 데이터 파일에서 GNUplot은 열의 요소로(column) 데이터를 추출해 냅니다. 우선은 2차원 그래프를 그리는데 필요한 요소가 2가지 x, y 이므로 2개의 열의 요소만으로 그래프를 그리게 됩니다. 위의 예제는그래서 x는 첫 번째 열의 요소를 받아서 1, 2, 3, 4, 5, .......입니다. y는 두 번째 열의 요소를 추출해서 그리게 됩니다. 이해가 가시지요? ^^;

(2) 3차원 자료 그리기 ( 3D Data Plots )

: 자아 그러면 이제 위의 예제 데이터 파일로 3차원 그래프를 그려 보도록 하겠습니다.

: 3차원 그래프를 그리기 위해서 splot 이라는 명령어를 사용했습니다. 간단하게 이것은 데이터 파일에서 3차원 그래프를 그리기 위해서 3개의 열을 추출해 냅니다. 3차원 그래프를 그리기 위해서 3개의 요소가 필요하므로 ^^. 이해가 가시지요? 그럼 이 단원은 여기서 마물~ *^^*

11. 출력 만들기 ( Generating Output )

(1) 프린터로 직접 인쇄하기 ( Printing directly to a printer )

: 프린트로 직접 인쇄하기 위해서는 뭐 우선은 프린터가 연결이 되어 있고, 프린터 드라이버도 제대로 설치가 되어있어야 하겠지요. 그리고 프린터기가 켜져 있어야 하겠지요. ^^;;; 자아 그러면 프린트 하기 위해서는 여러 방법이 있겠지만 우선은 그래프 위에서 오른쪽 마우스 버튼을 눌러서 팝업 메뉴를 띄우면 'Print...' 라는 메뉴가 있습니다. 그것을 클릭하면 프린트 메뉴가 뜹니다. 적당히 조절해서 프린트하시면 됩니다. 간단간단 *^^*

[프린트 메뉴]

(2) Postscript file로 출력하기 ( Outputing to a postscript file )

: 자아 이제는 Postscript File로 출력을 해 보겠습니다. Postscript FIle이 뭐여여? 라고 물으시면 찾아보셔여~ 라고 대답하겠습니다. 그거까지 설명해 드릴 여력이 엾군요. ^^;;; 이 Postscript File로 출력하기 위해서는 GNUplot 상에서 terminal을 바꿔 줘야 합니다. 말이 어려운가요? 절대 어렵지 않습니다. 자아 그러면 또 예제를 통해서 알아보도록 하겠습니다. 우선은 replot 이라는 명령은 GNUplot 이 마지막으로 그래프를 나타내기 위해서 출력한 명령어를 다시 사용한다고 이해하시면 쉽습니다. GNUplot은 뭐든지 마지막으로 출력한 결과물을 기억하고 있습니다. 이점 기억해 두세요. 우선은 사인파를 그려보도록 하겠습니다.

: 위와 같은 그래프가 생성이 됩니다. 다음은 Postscript File로 저장을 해 보도록 하겠습니다.

: 위와 같이 GNUplot의 터미널을 변경합니다. set terminal postscript 그런 다음에 저장할 파일명을 지정합니다. set output 'e:\sin.ps' 그리고서 위의 그림에는 나와 있지는 않지만 마지막으로 replot 명령어를 사용합니다. 뭐 ^^; plot sin(x) 하셔도 되구여. 위에서 set output 'e:\sin.ps' 라고 한 것은 우선 e:\ 라는 위치에 sin.ps 라는 파일을 열어둔 것입니다. 아직 데이터가 들어간 것은 아니지요. 마지막으로 한 명령어의 실행 내용이 들어가는 것이지요. 마지막으로 plot cos(x) 하면은 cos(x) 그래프의 내용이 들어가는 것입니다. 그리고 plot sin(x) 해도 그래프 창은 뜨지를 않습니다. 터미널이 postscript 터미널 형태이기 때문이지요. 그리고 중요한 것은 이 상태에서 다른 그래프 출력 명령을 하면 미리 열어둔 파일에 그 내용이 들어가게 됩니다. 반드시 다른 데이터를 넣기 원한다면 다른 파일을 꼭 열도록 하세요. 그래야 파일을 확인하면 그 용량이 0이 아니라 정상 크기가 나오게 됩니다. 파일이 계속 열려 있으면 파일의 크기가 0으로 표시가 되어 나옵니다. 이점 꼭 기억해 두시기를 바랍니다. 이 파일은 다른 파일을 열면서 닫히게 됩니다. 다시 그래프를 보기 위해서는 터미널을 다시 바꿔 주시면 됩니다. "set terminal windows" 하시면 됩니다.

: 위에서는 sin.ps 라는 파일에 sin(x) 라는 그래프를 넣었습니다. 그리고 열린 파일을 닫기 위해서 tt.ps 라는 파일을 열었습니다. 그리고서 파일의 용량을 확인해야 제대로 그 크기가 나옵니다. 위에서 보듯이 tt.ps 라는 파일은 어느 데이터를 넣어도 계속 0이라는 크기로 나옵니다. 열려져 있는 상태이기 때문이지요. *^^*

[ sin.ps 파일의 내용 ]

(3) GraphicFile로 출력하기 ( Outputing to a graphics file )

: 자아 그러면 이제는 그래픽 파일로 출력을 해 보도록 하겠습니다. 우선 여기서는 eps 라는 그래픽 파일로 출력을 해 보도록 하겠습니다. eps 파일은 그림파일의 일종이기도 합니다. 대표적으로 한글에서도 불러올 수가 있습니다. 방식의 설명은 생략하고 예제로 설명을 맺도록 하겠습니다.

: 한글에서 eps 파일을 불러 오는 것은 직접 해 보세요~ *^^* 위의 경우는 cos(x) 라는 그래프를 cos.eps 파일로 저장한 경우 입니다.

※ ps : PostScript, eps : Encapsulated PostScript ( 프린터로 직접 인쇄하는 ps 파일에서 필요로 하는 여분의 명령어 줄이 없음 )

12. 쓸 만한 요령 ( Nifty Tricks )

(1) file로 작업 저장 또는 시작하기 ( Saving and Loading work from files )

: GNUplot에서는 작업하던 도중에 내용을 저장할 수 있습니다. 예를 들어서 해 보도록 하지요.

: 위의 예제는 우선 isosamples를 이용하여 해상도를 60으로 조정하고, 3차원으로 sin 함수를 나타내었습니다. 마지막으로 표현한 그래프가 3차원 sin 그래프이므로 save 명령어를 통해서 저장되는 것이 바로 3차원 sin 함수입니다. 위 그림을 보면 3d-sin.gnu 라는 파일이 생성 되었음을 볼 수 있습니다. 자아 그러면 이 그래프를 다시 불러 오도록 하겠습니다.

: 파일을 불러오는 명령어는 load입니다. 간단하지요? 그러면 이 부분은 여기서 설명의 끝을~ 쫘악! *^^*

(2) Log scale 사용하기 ( Using a Log Scale )

: 변수값이 크게 바뀌는 경우 log 좌표를 사용하는 것이 필요할 때가 있습니다. log scale의 적용은 간단합니다. 2차원 그래프에서 x 축에 logscale을 적용하고 싶다면 명령어 라인에서 "set logscale x" 하시면 되고, y 축에 적용하고 싶다면 "set logscale y" 하시면 됩니다. ^^; 현재 logscale 이 적용되는 것을 보고 싶으시면 "show logscale" 이라는 명령어를 사용하시면 현재 어느곳에 logscale이 적용이 되고 있는지 알 수 있습니다. 또한 logscale을 적용하지 않으시겠다면 명령어 라인에서 "set nologscale (axis)" 하시면 됩니다. 좌표축을 넣지 않으면 기본적으로 모든 좌표축에 적용이 되어 모두 logscale을 사용하지 않게 됩니다. 예를 보고 끝내도록 하겠습니다.

: 위에서는 우선 x에 logscale을 적용한 다음 show logscale 명령어로 적용이 된 것을 보았습니다. 그리고 다시 logscale을 없앤 다음 다시 y에 logscale을 적용하고 확인한 다음 다시 logscale 설정을 없앴습니다. 마지막으로 logscale 적용의 예를 보고 끝내도록 하겠습니다.

[ logscale 적용전 ]

[ logscale 적용후 ]

(3) 그림표에 눈금 격자 나타내기 ( Displaying a grid behind graph )

: 간단히 말해 그래프에 눈금 격자를 보이게 하는 것입니다. 보이게 하기 위해서는 "set grid" 보이지 않게 하기 위해서는 "set nogrid" 하시면 됩니다. 예제 그림을 보면서 마치도록 하겠습니다.

[ grid를 이용한 그래프 표현 ]

(4) 여러 그림표 겹쳐 보이기 ( Overlaying Multiple Plots )

: 여러 그래프를 동시에 한화면에 나타내기 위해서는 간단합니다. 단순히 명령어에서 콤마로 분리를 시키면 됩니다. 이것도 예제로 마물하겠습니다. *^^*

(5) 선의 모양 바꾸기 ( Changing style of lines )

: GNUplot에서 그래프의 출력, 선의 종류를 선택할 수 있습니다. 선의 종류를 바꾸기 위해서는 "set function(data) style line-style"입니다. 우리가 바꿀 부분은 바로 line-style 부분입니다. sin(x)를 통해서 여러 라인의 형태를 보도록 하겠습니다.

[ Lines ] [ Points ] [ Linespoints ] [ Impulses ] [ dots ] [ Steps ] [ Errorbars ] [ Boxes ] [ Boxerrorbars ]

: 현재의 라인의 형태를 확인하기 위해서는 "show function(data) style" 하시면 됩니다. function은 우리가 함수의 형태를 주고서 그래프를 그리는 경우이고, data는 data 파일을 통해서 그리는 것을 말합니다. 또는 다음과 같이 형태를 바꿀 수도 있습니다. "plot function(data) with line-style" *^^* 그리고 3차원에서는 라인의 형태가 제한이 되어 있습니다. 3차원 그래프에서는 "Lines", "Linespoints", "Impulses", "Dots" 4가지 형태의 라인 형태만을 사용할 수 있습니다.

(6) 수식 값 계산하기 ( Evaluating Expressions )

: 수식값을 계산 할 때는 "print" 명령어를 사용합니다. 일반적인 산술 연산 및 지수 함수의 계산 등을 할 수 있습니다. 사용법은 아주 간단합니다. 그냥 몇가지 예를 화면에 띄어 보도록 하겠습니다.

(7) 함수 정의하기 ( Defining your own functions )

: 함수를 정의하는 방법은 다음과 같습니다. "constant_name = expression(value)" 예를 들자면, c = 3 하고 plot sin(x*c) 하면은 결론적으로 plot sin(3*x)를 출력하는 결과가 됩니다. 위의 것들은 변수를 정의하는 경우이고 다음에는 함수를 정의해 보도록 하겠습니다. 예를 들어서 보는 것이 좋겠지요?

: 위와 같은 변수 및 함수의 정의는 그래프를 출력하거나 수식의 계산에도 사용될 수 있습니다.

(8) 변수 바꾸기 ( Changing variables used )

: 일반적으로 2차원 그래프에서는 독립 변수가 x가 쓰인다. 3차원인 경우 x, y가 쓰인다. 이런 독립 변수들을 바꿀 수가 있다. 변수를 바꾸는 방법은 "set dummy" 라는 명령어를 사용한다. 지금까지 차근차근 따라오신 분들은 이 dummy 라는 단어를 몇 번 마주 쳤을 것이다. "set dummy t"라 하면 x라는 독립 변수 대신 t라는 독립 변수를 사용하게 된다. "set dummy k, s" 하면은 x, y라는 독립 변수 대신에 k, s라는 독립 변수를 사용하게 된다. 더 자세한 사항은 "help set dummy"를 보면 됩니다. ^^;

(9) 축 이름 바꾸기 ( Changing axis labels )

: 기본적으로 보게 되면 2차원인 경우 축이 2개가 쓰입니다. x, y축이지요. 3차원은 당연히 x, y, z 이지요? ^^;;; 여기서는 이 축들에 그래프 출력시 이름을 붙히는 방법을 알아보도록 하겠습니다. 명령어는 다음과 같습니다. "set x(y,z)label string" 하시면 됩니다. 우리는 string 이라는 부분을 바꾸면 되는 거구여. *^^* 예를 끝으로 이부분도 마물을 ^^v

(10) 그림표의 외관 바꾸기 ( Changing general apperance of plot )

ㆍ 제목과 시간 더하기 (Adding Title and Time) : 이 부분은 출력되는 그래프 양식에 출력되는 시간과 제목을 만들어서 넣는 작업입니다. 이것도 예제로 ^^;

ㆍ 외곽선 및 함수 이름 없애기 (Turning off Border and Graph Key) : 이 기능은 함수의 그래프에서 사각형 테두리를 없앰과 함수 출력시 우측 상단에 나타나는 함수의 이름을 없애는 것을 나타냅니다. 외곽선의 유무는 "set (no)border" 라는 명령어로 합니다. 함수의 이름의 유무는 "set (no)key" 라는 명령어로 합니다. 이것도 역시 예제를 보는 것이 가장 좋겠지요? ^^v

ㆍ 경계의 tic 표시 바꾸기 : 이번에는 경계에 나타나는 표시들을 없애고 바꿔 봅니다. 이것 또한 예제로 대치 합니다. *^^* 예제를 보시면 쉽게 이해하실 수 있습니다.

[ set noxtics ]

[ set noytics ]

: 다시 되살리려면 "set xtics" 과 "set ytics"을 사용하시면 됩니다. 이 표시 부분을 월별로나 일자별로 할 수도 있습니다.

※ 기타 참고로 보실 사항들

① help plot datafile using

② help plot datafile

③ help set ticslevel

④ help arrows

⑤ help labels

http://coffeenix.net/doc/gnuplot/gnuplot.html

이 포스트를..

덧글 2개 엮인글 쓰기