Gnuplot
데이터 파일의 기본 플로팅
수색…
소개
gnuplot 의 주요 유용한 기능 중 하나는 데이터 파일 을 플로팅 할 수 있다는 것입니다. gnuplot을 사용 하여 데이터 파일을 플로팅하는 것은 실제로 간단합니다. 실제로 터미널에서 소프트웨어를 열면 명령 줄 plot 'file'
을 숫자로 만들어서 자동 줄거리를 만들어야합니다.
우선, 플로팅하기 전에 데이터 파일이있는 디렉토리와 동일해야합니다. 그렇지 않으면 warning
.
통사론
- 스타일로 column_expression 을 사용하여 플롯 데이터 파일 만들기
단일 데이터 파일 플롯
아래의 data_set.dat
파일 형식의 열이있는 기본 gnuplot 명령 plot
(또한 p
만 해당) 플롯 데이터 세트입니다.
# Prototype of a gnuplot data set
# data_set.dat
# X - X^2 - 2*X - Random
0 0 0 5
1 1 2 15
1.4142 2 2.8284 1
2 4 4 30
3 9 6 26.46
3.1415 9.8696 6.2832 39.11
4 16 8 20
4.5627 20.8182 9.1254 17
5.0 25.0 10.0 25.50
6 36 12 0.908
보시다시피 부동 소수점 표기법으로 데이터 세트에 쓸 수 있습니다. 이제 모든 것이 데이터 플롯을 만들 준비가되었습니다.
plot "data_set.dat"
gnuplot 은 output
대상에 그래프를 생성합니다. 기본 설정은 데이터 파일의 처음 두 열을 각각 x와 y로 사용합니다. 플롯 할 열을 지정하려면 using
지정자를 사용하십시오.
plot "data_set.dat" using 2:4
이는 "열 2를 X로, 열 4를 Y로 사용하여 파일 그리기"를 의미합니다. 데이터 세트가 tridimensional 파일 인 경우 splot
광고 만 사용하면 z- 열을 추가 할 수 있습니다.
splot "data_set.dat" using 1:2:3
플롯 포인트에 대해 다른 스타일 (gnuplot 문서 또는 추가 정보를위한 플롯 스타일 선택 참조)이 있습니다. 전에 말했듯이 기본 스타일은 point
plot "data_set.dat" using 1:4 with point
with point
입력하지 않은 경우와 동일한 플롯이 with point
. 데이터 플로팅에 대한 유용한 스타일이다 linespoint
분명히, "라인 + 포인트"입니다. 예 :
plot "data_set.dat" using 1:4 with linespoint
# the abbreviated form is completely equivalent:
# p "data_set.dat" u 1:4 w lp
반복을 그리는 형태
경우에 당신은 더 많은 열이 단지에 전달 그들에게 동일한 그래프에있는 모든 플롯하려면 plot
로 구분하여, 기능을 원하는 모든 인수를 ,
:
p "data_set.dat" u 1:2 w lp,\
"data_set.dat" u 1:3 w lp,\
"data_set.dat" u 1:4 w lp
어쨌든 가끔씩 너무 많은 열이 하나씩 쓸 수 있습니다. 이러한 경우에 for
반복 루프 결과 매우 유용합니다 :
p for [col = 2:4] "data_set.dat" using 1:col w lp
출력을 준다.
간단히 for
반복문은 루프의 변수 (이 경우 col
)를 결정된 단계 (지정되지 않은 경우 = 1)로 증가시킵니다. 예를 들어 for [i = 0:6:2]
경우 i
는 0에서 6까지 2 단계로 증가합니다. i = 0, 2, 4, 6
. 모든 값 (시작, 중지 및 증가)은 정수 값으로 변환됩니다.
* 그리드
그리드는 데이터 세트를 플로팅 할 때 종종 유용합니다. 모눈 유형을 추가하려면
set grid
여러 데이터 파일 플로팅
첫 번째 방법 - 문자열 연결
여러 데이터 파일을 플롯하는 가장 간단한 방법은 for
루프를 gnuplot의 plot
명령 안에 삽입하는 것 for
. 당신이 한 가정 N
파일 즉, sequently 이름
file_1.dat
file_2.dat
file_3.dat
...
file_N.dat
명령 실행
plot for[i = 1:N] "file_".i.".dat"
file_1.dat
와 file_N.dat
사이의 모든 파일을 같은 그래프에 file_N.dat
입니다.
세 개의 데이터 파일이있는 예
데이터 세트 표
X 축 | Y-Axe file_1.dat | Y 축 파일 _2.dat | Y 축 파일 _3.dat |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 2 | 4 | 2 |
삼 | 삼 | 9 | 6 |
4 | 4 | 16 | 24 |
5 | 5 | 25 명 | 120 |
명령들
set terminal postscript color noenhanced ##setting the term
set output "multiple_files.ps"
set key center ##legend placement
plot [1:5][1:120] \
for [i = 1:3] "file_".i.".dat" \
pointsize 1.3 linecolor i+4 \
title "file\_".i.".dat" \
with linespoint
루프는 for [i = 1:3] "file_".i.".dat"
하여 i = 3
도달 할 때까지 plot
명령을 실행합니다. .i.
연결된 숫자입니다.
title "file\_".i.".dat"
은 파일 이름의 _
기호가 아래 첨자가 아닌 밑줄 로 표시되도록하기 위해 \
로 쓰여졌 고 noenhanced
지정자는이 결과를 얻는 데 중요하지 않습니다 .
최종 결과는 다음과 같습니다.
두 번째 방법 - sprintf
함수 사용
또 다른 가능한 길은 C 언어 sprintf
와 기본적으로 동일한 sprintf
함수를 사용하는 것입니다. gnuplot 5.1 문서 의 올바른 구문은 다음과 같습니다.
sprintf("format", x, y, ...)
간단한 예를 통해 모든 의구심을 분명히 할 수 있습니다.
file_name(n) = sprintf("file_%d.dat", n)
plot for[i = 1:N] file_name(i) title file_name(i)