Friday, March 11, 2016

Шинжлэх ухааны график дүрслэлийг Нюфлотоор /Scientific graphics and visualization by Gnuplot/

Нюфлотоор Шинжлэх ухааны чанартай график боловсруулах

Шинжлэх ухаан, инженерчлэлийн судалгаа тооцооны үр дүнг уншигч бусад судлаачидад тайлагнаж харуулахын тулд маш ойлгомжтой, үзэмжтэй график, дүрслэлийн ажлыг гүйцэтгэх хэрэгтэй болдог. Шинжлэх ухааны чанартай тайлбарыг өгч байгаа судлаач, инженер нь уншигчидад ямар нэгэн нууцлаг, ухаж ойлгохоор битүү зүйл огт харуулж болохгүй бөгөөд таны бичсэн зүйлсийг бараг нэг уншаад шууд ойлгохоор бичих шаардлагатай. Философи бол өөр хэрэг бизээ. Нюфлоттой нөхөрлөөд хагас жилийг авч байгаа ч бүрэн сураагүй байна. Бүрэн сурахгүй байх шалтгаан нь хэрэглээд сурчихсан коммандын мөрүүдээ дахин дахин ашиглаад болооод байхтай холбоотой юм. Яг л цор гарц line комманд ашиглаад сурчихвал Autocad дээр зураг зураад байдаг шиг л. Тэгээд ч их энгийн програм юм байгаа юм. Гол нь мэдээлэл, мэдээгээ текстэн баганаар хадгалж түүнтэйгээ ажилладаг бол Нюфлотоор график зураад байх боломжтой гэдгийг хэлье. 

Тухайлбал дараах кодыг авч үзье.
 # this script for relation of viscosity and relax
 reset
 set term png size 800,600 font 'Arial, 20'
 set output 'reltau.png'
 #set key box opaque
 set title 'Тооцооллыг хянах үндсэн параметрүүдийн хамаарал'
 set y2tics
 set ytics nomirror
 #set yrange [-0.2:1.1]
 #set xrange [-5:15]
 set xlabel 'Тайвшралтын хугацаа Tau'
 set ylabel 'Тайвшралтын параметр Omega'
 set y2label 'Сүлжээний зунгааралт Vis'
 plot 'reltau.dat' u 1:2 w l ls 4 lw 2 ti 'Tau ба Omega' axes x1y1, \
      'reltau.dat' u 1:3 w l ls 10 lw 2 ti 'Tau ба Vis' axes x1y2
 set term win
 unset output
Энэ кодонд харж байгаачлан Монголоор графикийн тайлбарыг бичээд байх боломжтой. Энэ кодыг *****.p гэж хадгалаад Нюфлотын терминал дээр load '*****.p' гэж бичихэд л үр дүнд нь reltau.png хэмээх дараах зураг үйлдвэрлэгдэж гарна. 


Дээрх кодонд  set y2tics, set ytics nomirror гэдгээр 2 талдаа босоо тэнхлэгтэй бөгөөд харилцан адилгүй тоололтой байхыг зааж өгнө. set xlabel гэх мэт нь хэвтээ ба босоо тэнхлэгт зориулсан тэмдэглэгээр өгч байгаа юм. Харин хэвлэх коммандын ард axes x1y2 гэх мэтээр аль хэмжигдэхүүнийг аль тэнхлэгтэй хамааруулж байгуулах вэ гэдгийг зааж өгнө. Энд х1 тэнхлэгийг у2 тэнхлэгтэй хамааруулж зурна гэсэн байна. 

Хамгийн гол нь ямар нэгэн зурагт файл үйлдвэрлэж байгаа бол зургийг гаргахаас өмнө ажиллаж байгаа терминалыг виндовс болгож өөрчлөх хэрэгтэй. Өөр үйлдлийн системтэй бол тэр системрүүгээ терминалаа өөрчлөөд дараа нь файлаа чөлөөлнө. Сүүлчийн хоёр мөрийг сайн хараарай. 

Нэг талбай дээр олон график байрлуулах

Нюфлотын нэг давуу тал нь олон графикийг нэг талбар дээр байрлуулж цэгцлэх чадвар юм. Жишээ нь дараах графикийг авч үзье.


Энэ графикийг дараах кодын тусламжтайгаар үйлдэнэ. 
 # gnuplot script for drawing graph of sediment and salinity
 reset
 set term pngcairo size 1000,500
 set output 'negtgel.png'
 set multiplot layout 1,5 title 'Distance from inlet boundary' font #'areal,18'
 set tmargin 3.0
 set key bottom center
 
 #1set title 'sa4(210)'
 set label 1 '50m' at 1.5, 1.5 #font 'areal,15'
 set x2tics (0, 0.01, 0.02)
 set xtics (0, 2, 4)
 set ytics (-15, -10, -5, 0)
 set x2range [-0.001:0.02]
 set xrange [0:4]
 set yrange [-15:0]
 set ylabel 'metre(s) below sea level'
 set key bottom
 set xtics nomirror #smooth bezier w p csplines
 plot 'so10.dat' u 2:1 w p pt 7 lc rgb 'red' title 'Salinity' axes x2y1,\
      'so10.dat' u 3:1 w p pt 8 lc rgb 'blue' title 'Sediment' axes x1y1
   
 #2set title 'sa4(210)'
 set label 1 '250m' at 1.5, 1.5 #font 'areal,15'
 set x2tics (0, 0.01, 0.02)
 set xtics (0, 2, 4)
 set ytics (-15, -10, -5, 0)
 set x2tics
 set x2range [-0.001:0.02]
 set xrange [0:4]
 set yrange [-15:0]
 unset ylabel
 set key bottom
 set xtics nomirror #smooth bezier w p csplines
 plot 'so50.dat' u 2:1 w p pt 7 lc rgb 'red' title 'Salinity' axes x2y1,\
      'so50.dat' u 3:1 w p pt 8 lc rgb 'blue' title 'Sediment' axes x1y1

 #3set title 'sa4(210)'
 set label 1 '750m' at 4.0, 1.5 #font ',15'
 set x2tics (0, 0.01, 0.02)
 set xtics (0, 5, 10)
 set ytics (-15, -10, -5, 0)
 set x2tics
 set x2range [-0.001:0.02]
 set xrange [0:10]
 set yrange [-15:0]
 unset ylabel
 set key bottom
 set xtics nomirror #smooth bezier w p csplines
 plot 'so150.dat' u 2:1 w p pt 7 lc rgb 'red' title 'Salinity' axes x2y1,\
      'so150.dat' u 3:1 w p pt 8 lc rgb 'blue' title 'Sediment' axes x1y1

 #4set title 'sa4(210)'
 set label 1 '850m' at 4.0, 1.5 #font ',15'
 set x2tics (0, 0.01, 0.02)
 set xtics (0, 6, 12)
 set ytics (-15, -10, -5, 0)
 set x2tics
 set x2range [-0.001:0.02]
 set xrange [0:12]
 set yrange [-15:0]
 unset ylabel
 set key bottom
 set xtics nomirror #smooth bezier w p csplines
 plot 'so170.dat' u 2:1 w p pt 7 lc rgb 'red' title 'Salinity' axes x2y1,\
      'so170.dat' u 3:1 w p pt 8 lc rgb 'blue' title 'Sediment' axes x1y1

 #5set title 'sa4(210)'
 set label 1 '950m' at 4.0, 1.5 #font ',15'
 set x2tics (0, 0.01, 0.02)
 set xtics (0, 5, 10)
 set ytics (-15, -10, -5, 0)
 set x2tics
 set x2range [-0.001:0.02]
 set xrange [0:10]
 set yrange [-15:0]
 unset ylabel
 set key bottom
 set xtics nomirror #smooth bezier w p csplines
 plot 'so190.dat' u 2:1 w p pt 7 lc rgb 'red' title 'Salinity' axes x2y1,\
      'so190.dat' u 3:1 w p pt 8 lc rgb 'blue' title 'Sediment' axes x1y1

 unset multiplot
 set term win
 unset output 
Энэ кодонд 1 эгнээнд /мөрөнд/ 5 график цувуулж байрлуулах комманд set multiplot layout 1,5  гэдгээр өгөгдөж байгаа юм.  #1set  гэх мэтээр график тус бүрийн зурах кодыг зааглаж өгч байгаа юм. Энд хоёр хэвтээ тэнхлэг ашиглахын тулд  set x2tics (0, 0.01, 0.02),  set xtics (0, 2, 4) гэж зарлаж өгсөн ба тэдгээрийн тэнхлэг дээр хэвлэгдэх тооллыг хаалтанд оруулж өгсөн байна. Харин утгын мужыг нь  set x2range [-0.001:0.02], set xrange [0:4] гэж өгсөн нь хоёр дахь хэвтээ тэнхлэгийн муж -0.001 - ээс 0.02 байна гэсэн үг юм. 
plot 'so10.dat' u 2:1 w p pt 7 lc rgb 'red' title 'Salinity' axes x2y1,\ ---- гэдгийг тайлбарлавал so10.dat файлаас 2-р мөрийг х2 тэнхлэг дээр, 1-ээр мөрийг у1 тэнхлэг дээр авч үзэх /u 2:1/ ба цэгээр /p pt/ зурна /plot/. Цэгийн загвар нь pt 7 байна. Харин өнгө нь улаан байна. Энэ графикийг Salinity гэж хаягал хэмээсэн байна. 
Эхний графикийг байх ёстой газар нь зурсаны дараа
 set label 1 '250m' at 1.5, 1.5  ---- гэх коммандаар хоёр дахь графикийн комманд эхэлж байгааг Нюфлот ойлгоно. Энэ нь графикт тэмдэглэгээг өгөх комманд юм. 

Дээрх графикийг харвал босоо тэнхлэгүүд ижил хувиартай дээрээс нь графикийн тэмдэглэгээ нэг байж болохоор гэх мэт хялбарчилах олон зүйлс харагдаж байна. Мөн энэ график юу харуулж байгаа вэ гэдгийг бүр ойлгомжтой болгохын тулд тэнгисийн ёроолыг тэмдэглэж өгөх хэрэгтэй харагдаж байна.
Нюфлотод графикуудын тэнхлэгийг давхцуулах, нэг тэнхлэгийг тэлээлэх зэргийг гүйцэтгэх нь мөн л хялбар байдаг юм. Дээрх кодыг дараах маягаар өөрчлөе.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
 # gnuplot script for drawing graph of sediment and salinity
 reset
 set term pngcairo enhanced size 1000,500
 set output 'negtgelstack.png'

 #set tmargin 3.0
 set key bottom center
 NX=5; NY=1
 DX=0.05; DY=0.12; SX=0.18; SY=0.67
 set bmargin DX; set tmargin DX; set lmargin DY; set rmargin DY
 set size SX*NX+DX*4,SY*NY+DY*4
 set multiplot layout 1,5 rowsfirst title 'Distance from inlet boundary' font #'areal,18' 
 #1set title 'sa4(210)'
 set size SX,SY
 set label 1 '50m' at 1.5, 3.0 #font 'areal,15'
 set x2tics (0, 10, 20)
 set xtics (0, 1, 2)
 set ytics (-15, -10, -5, 0)
 set x2range [-0.001:20]
 set xrange [0:3]
 unset x2label
 set yrange [-15:0]
 set ylabel 'metre(s) below sea level'
 set key bottom
 unset xlabel
 set xtics nomirror #smooth bezier w p csplines
 set origin DX+0.02,DY;
 plot 'so10.dat' u ($2*1000):1 w p pt 7 lc rgb 'blue' lw 2 notitle axes x2y1,\
      'so10.dat' u 3:1 w p pt 8 lc rgb 'red' lw 2 notitle axes x1y1,\
      '50bot.dat' u 1:2 w lp lt 10 lc rgb "brown" lw 2 notitle
   
 #2set title 'sa4(210)'
 set size SX,SY
 set label 1 '250m' at 1.5, 3.0 #font 'areal,15'
 set x2tics (10, 20)
 set xtics (0, 1, 2, 3)
 set ytics (-10, -5)
 set x2tics
 set x2range [-0.001:20]
 set xrange [0:4]
 #set yrange [-15:0]
 unset ylabel
 unset xlabel
 unset x2label
 unset ytics
 set key bottom
 set xtics nomirror #smooth bezier w p csplines
 set origin DX+SX+0.018,DY;
 plot 'so50.dat' u ($2*1000):1 w p pt 7 lc rgb 'blue' lw 2 notitle axes x2y1,\
      'so50.dat' u 3:1 w p pt 8 lc rgb 'red' lw 2 notitle axes x1y1,\
      '250bot.dat' u 1:2 w lp lt 10 lc rgb "brown" lw 2 notitle

 #3set title 'sa4(210)'
 set size SX,SY
 set label 1 '750m' at 4.0, 3.0 #font ',15'
 set x2tics (10, 20)
 set xtics (0, 4, 8)
 set ytics (-10, -5)
 set x2tics
 set x2range [-0.001:20]
 set xrange [0:10]
 set xlabel 'Sediment [dimensionless]'
 set x2label 'Salinity [PSU]'
 #set yrange [-15:0]
 unset ylabel
 set key bottom
 set xtics nomirror #smooth bezier w p csplines
 set origin DX+SX*2+0.016,DY;
 plot 'so150.dat' u ($2*1000):1 w p pt 7 lc rgb 'blue' lw 2 title 'Salinity' axes x2y1,\
      'so150.dat' u 3:1 w p pt 8 lc rgb 'red' lw 2 title 'Sediment' axes x1y1,\
      '750bot.dat' u 1:2 w lp lt 10 lc rgb "brown" lw 2  title 'sea bed'

 #4set title 'sa4(210)'
 set size SX,SY
 set label 1 '850m' at 4.0, 3.0 #font ',15'
 set x2tics (10, 20)
 set xtics (0, 5, 10)
 set ytics (-10, -5)
 set x2tics
 set x2range [-0.001:20]
 set xrange [0:12]
 #set yrange [-15:0]
 unset ylabel
 unset xlabel
 unset x2label
 set key bottom
 set xtics nomirror #smooth bezier w p csplines
 set origin DX+SX*3+0.014,DY;
 plot 'so170.dat' u ($2*1000):1 w p pt 7 lc rgb 'blue' lw 2 notitle axes x2y1,\
      'so170.dat' u 3:1 w p pt 8 lc rgb 'red' lw 2 notitle axes x1y1,\
      '850bot.dat' u 1:2 w lp lt 10 lc rgb "brown" lw 2 notitle

 #5set title 'sa4(210)'
 set size SX,SY
 set label 1 '950m' at 4.0, 3.0 #font ',15'
 set x2tics (10, 20)
 set xtics (0, 4, 8, 10)
 set ytics (-10, -5)
 set x2tics
 set x2range [-0.001:20]
 set xrange [0:10]
 #set yrange [-15:0]
 unset ylabel
 unset xlabel
 unset x2label
 set key bottom
 set xtics nomirror #smooth bezier w p csplines
 set origin DX+SX*4+0.012,DY;
 plot 'so190.dat' u ($2*1000):1 w p pt 7 lc rgb 'blue' lw 2 notitle axes x2y1,\
      'so190.dat' u 3:1 w p pt 8 lc rgb 'red' lw 2 notitle axes x1y1,\
      '950bot.dat' u 1:2 w lp lt 10 lc rgb "brown" lw 2 notitle

 unset multiplot
 set term win
 unset output 
Дээрх кодонд нилээд юм нэмэгдсэн байгааг харж байгаа байх. Тайлбарлахад хялбар байх үүднээс урд талын дугаарыг дурьдан явъя.
8-р мөрөнд 5 график 1 мөрөнд гэсэн хэмжигдэхүүнийг өгч байна. Харин 9-р мөрөнд DX - нь талбарын тооллын эхээс эхний графикийн орших хэмжээ, өөрөөр хэлбэл зургийн баруун доод булангаас эхний графикийн баруун доод булан хүрэх зай, хувиар, DY- нь мөн адил босоо хэмжээ, энэ хоёрыг мөн авах зай гэж нэрлэж болно. SX- нь нэг графикийн талбарт эзлэх хэвтээ зай, SY- нь нэг графикийн талбарт эзлэх босоо зай гэх мэт хувиар болно. Тухайлбал SX=0.18 гэдэг нь нийт талбар 1 хувь гэсэн хэвтээ зайтай бол түүний 18 хувийг хамарч нэг график зурагдана гэсэн үг. Уул нь 1/5 =0.25 байж болох боловч тэнхлэгийн нэр гэх мэт зүйлс бичих зай хэрэгтэй. 
Үүний дараа 11-р мөрөнд зургийн нийт хэмжээг бодож өгч байна. Гэхдээ үүнийг хийгүйгээр 12-р мөрөнд layout 1,5 гэдгийн араас size 1000, 500 гэх мэтээр өгч болно л доо.
Ингээд 13-р мөрнөөс эхний график зурах коммандууд эхэлж байна. Нэмэлт чухал комманд бол графикийн эхлэх цэгийг 27-оор зааж өгсөн явдал юм. Энэ график DX+0.02,DY дээр эхтэй бол 2 дахь график DX+SX+0.018,DY (48-р мөр); 3 дахь нь DX+SX*2+0.016,DY;(68-р мөр) гэх мэтээр логикоор тооцоолоод өгөөд байх боломжтойг тус бүрийнх нь коммандын мөрнөөс хараарай. 
Хэвлэх комманд дээр файлаас уншиж буй хэмжигдэхүүнүүд дээр арифметик үйлдэл хийх боломжтой гэдгийг давсны концентрацийг /salinity concentration/ давсны практик нэгжрүү /PSU practical salinity unit/ шилжүүлж байгаагаар u ($2*1000):1 гэж харуулав. График ямар зурагдсаныг харцгаая.


Арай царайлаг болсоныг харж байгаа байх. Далайн гадаргаас түүний ёроол хүртэлх давс болон хагшаасны концентрацийн босоо хуваарилалтыг харж байна та. 

Магадлал, түгэлт, статистикийн холбогдолтой график зурах
Магадлал, түгэлт, туршилт судалгааны алдаа гэх мэтийг тодорхой харуулахын тулд шаталсан, дөрвөлжин эсвэл дээд доод хязгаартай хэрчимэн графикуудыг зурах хэрэгтэй болдог.
Жишээ болгон хагшаасны магадлалт тархалтын зургийг харъя. 



Та бүхэн харж байгаачлан босоо тэнхлэг 10 суурьтай логарифмын хувиартай байна. Янз бүрийн хувиартай график байгуулах боломж Нюфлотод бий. Эксэл дээрч үүнийг хялбархан хийж болно. За кодыг харъя. 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
 # this script for histogram of horizontal distribution of sediment particles
 reset
 set term pngcairo enhanced size 1000,400
 set output 'horzdist5.png'
 #set title 'Longitudinal distribution of particles at time=3hrs'
 set logscale y 10
 set yrange [0.00001:1]
 set label 7 '(b)' at 30.0, 0.5 font ',16'
 #set xlabel 'Distances from inlet [m]'
 set ylabel 'Particle distributions [log(n/n_{t})]'
 set ytics (0.00, 0.0001, 0.001, 0.01, 0.1, 1.0)
 plot 'c4_graph5.dat' u ($1*5):2 w boxes title "D=12.0-4.0{/Symbol m}m",\
      'c3_graph5.dat' u ($1*5):2 w boxes title "D=24.4-4.0{/Symbol m}m",\
      'c2_graph5.dat' u ($1*5):2 w boxes title "D=32.2-4.0{/Symbol m}m",\
      'c1_graph5.dat' u ($1*5):2 w boxes title "D=54.4-4.0{/Symbol m}m",\
      'c4_graph5.dat' u ($1*5):2 w steps lc rgb 'red' lw 2 notitle,\
      'c3_graph5.dat' u ($1*5):2 w steps lc rgb 'green' lw 2 notitle,\
      'c2_graph5.dat' u ($1*5):2 w steps lc rgb 'blue' lw 2 notitle,\
      'c1_graph5.dat' u ($1*5):2 w steps lc rgb 'violet' lw 2 notitle
   
 set term win
 unset output 
Энд тэнхлэгийн хувиарыг өөрчлөх бол 6 -р мөрөнд бичсэн шиг өөрчлөх нь байна. у тэнхлэгийг 10 суурьтай логарифм хувиартай болгосон байна. Энэ хувиарт босоо тэнхлэгийн эхлэл 0 байж болохгүй учир утгын мужыг 7-д зааж өгсөн байна. Мөн тэнхлэгийн тэмдэглэгээнд зарим математик томъёолол ашигласан байгааг харж байгаа байх. Зэрэг болон индексийг бичих дүрэм нь ЛаТеХтай ижил. Харин грек тэмдэглэгээг гаргахаар бол буржгар хаалтанд коммандаа {/Symbol m} гэж бичнэ. ЛаТеХ-д мю нь \mu гэдэг бол Нюфлотод m - ээр гарч ирнэ. Энд дөрвөлжин графикийг 12-15-р мөрөнд, шаталсан графикийг 16-19-р мөрөнд зурахаар кодолсон байгааг харж байгаа байх. Хэвтээ дөрвөлжин график нь зурахад хялбар байдаг бол босоо тэнхлэгт дөрвөлжин графикийг boxes гэдгээр зурах боломжгүй. Тийм жишээ харуулъя. 
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
# gnuplot script for drawing graph of sediment particle frequency
 reset
 set term pngcairo enhanced size 1000,500
 set output 'histo_c4negdsen.png'
 
 #set tmargin 3.0
 set key bottom center
 NX=5; NY=1
 DX=0.05; DY=0.12; SX=0.18; SY=0.74
 set bmargin DX; set tmargin DX; set lmargin DY; set rmargin DY
 set size SX*NX+DX*4,SY*NY+DY*4
 set multiplot layout 1,5 rowsfirst title 'Distance from inlet boundary' font #'areal,18' 
 #1set title 'sa4(210)'
 set size SX,SY
 set label 1 '50m' at 1.5, 1.0 #font 'areal,15'
 set ylabel 'metre(s) below sea level'
 set key bottom
 set origin DX+0.02,DY;
 
 set yrange [-15:0]
 set xrange [0:3.2]
 set xtics (0.0,1.4,2.8)
 set ytics (-15.0, -10.0, -5.0, 0)
 plot 'c4_50m6.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars lc rgb "blue" ti "time=1hr",\
      'c4_50m7.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars lc rgb "red" notitle,\
      'c4_50m8.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars lc rgb "green" notitle,\
      'c4_50m9.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars lc rgb "violet" notitle,\
      'c4_50m10.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars lc rgb "black" notitle,\
      '50bot.dat' u 1:2 w l lc rgb "brown" lw 2 notitle
 
 #2set title 'sa4(210)'
 set size SX,SY
 set label 1 '250m' at 1.5, 1.0 #font 'areal,15'
 unset ylabel
 unset ytics
 set key bottom
 set origin DX+SX+0.018,DY;
 
 set yrange [-15:0]
 set xrange [0:3.2]
 set xtics (0.0,1.4,2.8)
 set ytics (-10, -5)
 plot 'c4_250m6.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "blue" notitle,\
      'c4_250m7.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "red" ti "time=2hrs",\
      'c4_250m8.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "green" notitle,\
      'c4_250m9.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "violet" notitle,\
      'c4_250m10.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "black" notitle,\
      '250bot.dat' u 1:2 w l lc rgb "brown" lw 2 notitle

 #3set title 'sa4(210)'
 set size SX,SY
 set label 1 '750m' at 1.5, 1.0 #font ',15'
 set xlabel 'Vertical distributions (n/n_{tot}) of sediment particles' # with case of D=12.0-4{/Symbol m}m '
 set key bottom
 set origin DX+SX*2+0.016,DY;
 
 set yrange [-15:0]
 set xrange [0:3.2]
 set xtics (0.0,1.4,2.8)
 set ytics (-10, -5)
 plot 'c4_750m6.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "blue" notitle,\
      'c4_750m7.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "red" notitle,\
      'c4_750m8.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "green" ti "time=3hrs",\
      'c4_750m9.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "violet" notitle,\
      'c4_750m10.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "black" notitle,\
      '750bot.dat' u 1:2 w l lc rgb "brown" lw 2 notitle

 #4set title 'sa4(210)'
 set size SX,SY
 set label 1 '850m' at 1.5, 1.0 #font ',15'
 unset ylabel
 unset xlabel
 set key bottom
 set origin DX+SX*3+0.014,DY;
 
 set yrange [-15:0]
 set xrange [0:3.2]
 set xtics (0.0,1.4,2.8)
 set ytics (-10, -5)
 plot 'c4_850m6.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "blue" notitle,\
      'c4_850m7.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "red" notitle,\
      'c4_850m8.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "green" notitle,\
      'c4_850m9.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "violet" ti "time=4hrs",\
      'c4_850m10.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "black" notitle,\
      '850bot.dat' u 1:2 w l lc rgb "brown" lw 2 notitle

 #5set title 'sa4(210)'
 set size SX,SY
 set label 1 '950m' at 1.5, 1.0 #font ',15'
 unset ylabel
 unset xlabel
 set key bottom
 set origin DX+SX*4+0.012,DY;
 set label 7 '(c)' at 3.0, 2.0 font ',16'
 set yrange [-15:0]
 set xrange [0:3.2]
 set xtics (0.0,1.4,2.8)
 set ytics (-10, -5)
 plot 'c4_950m6.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "blue" notitle,\
      'c4_950m7.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "red" notitle,\
      'c4_950m8.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "green" notitle,\
      'c4_950m9.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "violet" notitle,\
      'c4_950m10.dat' using ($2):1:($2):(0.1):yticlabel($1) with boxxyerrorbars  lc rgb "black" ti "time=5hrs",\
      '950bot.dat' u 1:2 w l lc rgb "brown" lw 2 ti "sea bed"

 unset multiplot
 set term win
 unset output 
Нилээд урт код боловч нэгтгэн тайлбарлавал зарим тэнхлэгийг тэлээлсэн, босоо тэнхлэг дээр суурилсан дөрвөлжин графикийг зурах юм. 24-р мөрнөөс эхэлж байгаа график зурах коммандыг хараарай. Хоёрдугаар мөрийн мэдээгээр дөрвөлжин үүсгэхдээ  уртыг нь 1 нэгжээр өргөнийг нь 0.1 нэгжээр зурна. х ба у дээр алдааны графикийг ашиглана гэсэн утгаар with boxxyerrorbars коммандыг өгсөн байна. Үр дүнд нь дараах графикийг гарган авна. 


Дээрх коднуудад хэрэглэгдсэн өгөгдлийн мэдээ нь дараах байдалтай форматлагдана. 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 420.0000000000   0.0002036660        20
 421.0000000000   0.0003156823        31
 422.0000000000   0.0010285132       101
 423.0000000000   0.0053971489       530
 424.0000000000   0.0050916495       500
 425.0000000000   0.0054989816       540
 426.0000000000   0.0041446029       407
 427.0000000000   0.0037372708       367
 428.0000000000   0.0033604887       330
 429.0000000000   0.0028105907       276
 430.0000000000   0.0027291242       268
 431.0000000000   0.0021690428       213
 432.0000000000   0.0018737271       184
 433.0000000000   0.0018533604       182
 434.0000000000   0.0015987779       157
 435.0000000000   0.0012219959       120
 436.0000000000   0.0015987779       157
 437.0000000000   0.0013136456       129
 438.0000000000   0.0015580448       153
 439.0000000000   0.0011507128       113
 440.0000000000   0.0012525459       123
 441.0000000000   0.0014562118       143
 442.0000000000   0.0012627292       124
 443.0000000000   0.0016293279       160
 444.0000000000   0.0015274949       150
 445.0000000000   0.0016089613       158
 446.0000000000   0.0008655805        85
 447.0000000000   0.0009674134        95
 448.0000000000   0.0011914460       117
 449.0000000000   0.0009063137        89
 450.0000000000   0.0007331976        72
 451.0000000000   0.0007637474        75
 452.0000000000   0.0008452138        83
 453.0000000000   0.0015682281       154
 454.0000000000   0.0006924644        68
 455.0000000000   0.0005906314        58
 456.0000000000   0.0008757638        86
 457.0000000000   0.0031466396       309
 458.0000000000   0.0027291242       268
 459.0000000000   0.0030244400       297
 460.0000000000   0.0031873728       313
 461.0000000000   0.0040020365       393
 462.0000000000   0.0027291242       268
 463.0000000000   0.0018126273       178
 464.0000000000   0.0016395112       161
 465.0000000000   0.0023930753       235
 466.0000000000   0.0020773930       204
 467.0000000000   0.0009266802        91
 468.0000000000   0.0010488798       103
 469.0000000000   0.0008859470        87
 470.0000000000   0.0008757638        86
 471.0000000000   0.0007739307        76
 472.0000000000   0.0010081467        99
 473.0000000000   0.0010488798       103
 474.0000000000   0.0010692464       105
 475.0000000000   0.0010488798       103
 476.0000000000   0.0009979634        98
 477.0000000000   0.0008859470        87
 478.0000000000   0.0009266802        91
 479.0000000000   0.0007433809        73
 480.0000000000   0.0009063137        89
 481.0000000000   0.0006924644        68
 482.0000000000   0.0007637474        75
 483.0000000000   0.0008248473        81
 484.0000000000   0.0009979634        98
 485.0000000000   0.0009470469        93
 486.0000000000   0.0008044806        79
 487.0000000000   0.0006517312        64
 488.0000000000   0.0006924644        68
 489.0000000000   0.0007433809        73
 490.0000000000   0.0007128310        70
 491.0000000000   0.0007331976        72
 492.0000000000   0.0005702648        56
 493.0000000000   0.0005397149        53
 494.0000000000   0.0003665988        36
 495.0000000000   0.0003767821        37
 496.0000000000   0.0006109980        60
 497.0000000000   0.1647657901     16180
 498.0000000000   0.0000000000         0

гэх мэт босоо текстэн мэдээлэл юм. Дээрх графикуудыг байгуулах кодонд хангалттай мэдлэг байгаа учир дуурайлгах маягаар өөр өөр графикуудыг байгуулах боломжтой. Шинэ зүйл сурах цаг зав байхгүй тохиолдолд чухал зүйлдээ цаг хаях хэрэгтэй. 

No comments:

Post a Comment