Gnuplot рдореЗрдВ рдПрдХ рдЕрдХреНрд╖ рдкрд░ рдЯрд┐рдХреНрд╕ рдХреЗ рдмреАрдЪ рдирд┐рд╢реНрдЪрд┐рдд рджреВрд░реА


рдЬрд░реНрдирд▓ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкрд░рд┐рдгрд╛рдо рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рдХреИрд╕реЗ gnuplot рдореЗрдВ рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдВ ред рдореИрдВрдиреЗ рд╕рд╡рд╛рд▓ рддрдп рдХрд┐рдпрд╛, рдореБрдЭреЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдорд┐рд▓реЗред рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ рдХреИрд╕реЗ, рдХреГрдкрдпрд╛, рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЗ рджреМрд░рд╛рди, рд╕рднреА рдЧреНрд░рд╛рдлрд╝ MS Excel рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдереЗред рдпрд╣ рдбреЗрдЯрд╛ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕реНрдХреЗрдЪ рдХрд░рдиреЗ, рдХрд░реНрд╡ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд▓реЗрдХрд┐рди рдПрдордПрд╕ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдбреНрд░рд╛рдЗрдВрдЧ рдкрд░ рдХреЛрдИ рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЬрдм рд▓реЗрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдгрд╛рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЕрдХреНрд╕рд░ gnuplot рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдЗрд╕ рддрд░рд╣ рдХреЗ рдЧреНрд░рд╛рдл рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:



рдЗрд╕ рдбреЗрдЯрд╛ рд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛

data.csv
7.3;	0.0251;	250;	217.9006251
5.3;	0.0348;	293;	238.6280188
3.3;	0.0398;	176;	177.7890558
7.4;	0.0413;	262;	229.6579533
3.2;	0.0438;	186;	180.6920998
7.2;	0.0468;	265;	233.6496388
5.1;	0.0486;	247;	248.6435206
5.2;	0.0685;	239;	263.0861645
3.4;	0.0697;	180;	199.4893097
3.1;	0.0717;	167;	200.9408317
4.3;	0.0718;	405;	358.2750638
2.2;	0.0728;	267;	255.5794728
1.1;	0.0797;	226;	314.1587397
1.3;	0.0797;	225;	314.1587397
1.2;	0.0822;	292;	315.9731422
2.4;	0.0852;	276;	264.5789092
1.4;	0.0879;	299;	320.1099799
6.4;	0.098;	362;	311.209506 
2.3;	0.102;	331;	276.771694 
2.1;	0.1021;	233;	276.8442701
6.1;	0.1182;	372;	325.8698782
4.1;	0.1263;	335;	397.8290383
4.4;	0.1436;	459;	410.3847036
4.2;	0.1455;	435;	411.7636495
6.2;	0.153;	360;	351.126361


рдпрджрд┐ рдЖрдк рдЗрд╕реЗ gnuplot рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рддреЗ рд╣реИрдВ: рдЕрдВрдХ рд╡рд┐рд▓реАрди рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред



рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рдореИрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЕрдХреНрд╖ (рдкрд░ рд▓реЗрдмрд▓ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд╛рдореЛрдВ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реА xtic рдЧреНрд░рд╛рдл рдХреНрд╖реЗрддреНрд░ (рдореЗрдВ) рдФрд░ рд▓реЗрдмрд▓ sprintf ):

set xtics rotate by -60
Label(String,Size) = sprintf("{/=%d %s}", Size, String)

plot "data.csv" using 2:3:xtic(2) title "1" w lp ls 1 ,\
     "data.csv" using 2:4 title "2" w lp ls 2 ,\
     "data.csv" using 2:($3>$4?$3+20:$4+20):(Label(stringcolumn(2), 12)) with labels notitle

рдЯреБрдХрдбрд╝рд╛

($3>$4?$3+20:$4+20)

рдЖрдкрдХреЛ 20 рдЗрдХрд╛рдЗрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЪрдпрдирд┐рдд рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдКрдкрд░ рдХреА рдЖрдХреГрддрд┐ рдореЗрдВ рдЕрдВрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рд╛:



рд▓реЗрдХрд┐рди рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХреЗ рдЕрд╕рдорд╛рди рд╡рд┐рддрд░рдг рдХреЗ рд╕рд╛рде рд╕рд╡рд╛рд▓ рдЦреБрд▓рд╛ рд░рд╣рд╛ред
рдирд┐рд░реНрдгрдп рдордВрдЪреЛрдВ рдФрд░ рд▓реЗрдЦреЛрдВ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдордиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЧрдард┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ ред

рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╡рд┐рдХрд▓реНрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирдВрдмрд░ рдХрд░рдирд╛ рд╣реИред

рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирдВрдмрд░ рджреЗрдирд╛ рд╣реИ:

 nl -v 0 -s ';' -w 1 data.csv >> data_nums.csv 

рдпрджрд┐ рдЖрдкрдХреЛ рдмрд╛рд╣рд░ рдХреА рдЧрдИ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХрдорд╛рдВрдб рдлреЙрд░реНрдо рд▓реЗрддрд╛ рд╣реИ:

grep -v "^#" data.csv | nl -v 0 -s ';' -w 1  >> data_nums.csv 

data_nums.csv
0;	7.3;	0.0251;	250;	217.9006251
1;	5.3;	0.0348;	293;	238.6280188
2;	3.3;	0.0398;	176;	177.7890558
3;	7.4;	0.0413;	262;	229.6579533
4;	3.2;	0.0438;	186;	180.6920998
5;	7.2;	0.0468;	265;	233.6496388
6;	5.1;	0.0486;	247;	248.6435206
7;	5.2;	0.0685;	239;	263.0861645
8;	3.4;	0.0697;	180;	199.4893097
9;	3.1;	0.0717;	167;	200.9408317
10;	4.3;	0.0718;	405;	358.2750638
11;	2.2;	0.0728;	267;	255.5794728
12;	1.1;	0.0797;	226;	314.1587397
13;	1.3;	0.0797;	225;	314.1587397
14;	1.2;	0.0822;	292;	315.9731422
15;	2.4;	0.0852;	276;	264.5789092
16;	1.4;	0.0879;	299;	320.1099799
17;	6.4;	0.098;	362;	311.209506 
18;	2.3;	0.102;	331;	276.771694 
19;	2.1;	0.1021;	233;	276.8442701
20;	6.1;	0.1182;	372;	325.8698782
21;	4.1;	0.1263;	335;	397.8290383
22;	4.4;	0.1436;	459;	410.3847036
23;	4.2;	0.1455;	435;	411.7636495
24;	6.2;	0.153;	360;	351.126361


рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, gnuplot рдирд┐рдпрдорд┐рдд рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдзреБрд░реА рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдЧрд╛:



рд╕рд╛рд░рд╛рдВрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ:

#!/usr/bin/gnuplot -persist

set encoding utf8
set terminal pngcairo size 640,400 enhanced monochrome
set output "img.png"

set ylabel "Y"
set xlabel "X"
set key left top samplen 5 spacing 1.15 width 2
set xrange [-0.5:24.5]
set mytics 2
set xtics rotate by -60
set grid
set pointsize 0.5
set datafile separator ";"
set style line 1 linetype 1 pointtype 7 linewidth 2 linecolor black
set style line 2 linetype 2 pointtype 7 linewidth 2 linecolor black

Label(String,Size) = sprintf("{/=%d %s}", Size, String)

plot "data_nums.csv" using 1:4:xtic(3) title "1" w lp ls 1 ,\
     "data_nums.csv" using 1:5 title "2" w lp ls 2 ,\
     "data_nums.csv" using 1:($4>$5?$4+20:$5+20):(Label(stringcolumn(2), 10)) with labels notitle


рдЕрджреНрдпрддрди:
рдорд╛рдЗрдВрдбрдлреБрд▓рдиреЗрд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджDeosisрдФрд░ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдПрдХ рд╕рдЯреАрдХ рд╕рдВрджрд░реНрдн (рдкреИрд░рд╛ рд╕реНрдпреВрдбреЛрдХреЙрд▓реНрдХреНрдпреБрд▓рдореНрд╕ ) рдпрд╣ рдирд┐рдХрд▓рд╛ рдХрд┐ рдЖрдк рдХреГрддреНрд░рд┐рдо рдирдВрдмрд░рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдХреНрд╖ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХреЗ рд╕рдорд╛рди рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрд╢рдХреНрдд рд╕реНрддрдВрдн ($ 0) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдкрдВрдХреНрддрд┐ рд╕реВрдЪрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореВрд▓ рдбреЗрдЯрд╛ рд╕реЗрдЯ - data.csv рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ:
plot "data.csv" using 0:3:xtic(2) title "1" w lp ls 1 ,\
     "data.csv" using 0:4 title "2" w lp ls 2 ,\
     "data.csv" using 0:($3>$4?$3+20:$4+20):(Label(stringcolumn(2), 12)) with labels notitle

Source: https://habr.com/ru/post/undefined/


All Articles