수색…


소개

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"

gnuplotoutput 대상에 그래프를 생성합니다. 기본 설정은 데이터 파일의 처음 두 열을 각각 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.datfile_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)


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow