Эрдмийн ажлын зураг, графикийг Нюфлотоор дүрсжүүлэх, зурах
Хоёрдугаар хэсэг
Нэгдүгээр хэсгийг эндээс уншаарай.
Сэтгүүл болгон л өөрийн тодорхой шаардлагуудыг хэвлэгдэхээр илгээгдэн ирж байгаа өгүүллүүдэд тавьдаг. Хамгийн гол нь тэдгээр шаардлагыг сайн биелүүлэхийн тулд ямар ч асуудлыг шийдвэрлэх гарцтай байх хэрэгтэй. Бид графикийг ихэвчлэн Эксэл дээр бужигнуулдаг. Энэ ч амархан. Харин хэд хэдэн графикийг хооронд нь тэнхлэгээр нь нийлүүлэх гэх мэт ахисан түвшний ажлууд гараад ирвэл суугай майзаг болоод эхлэнэ. Нэг ашиглаад суричхвал Нюфлот арвин чадвартай. Энэ хэсгээр зарим нэг чухал үйлдлүүдийг хийж сурсанаар та бүгдтэй хуваалцая.
Муруйд тохирсон регрессийн тэгшитгэл зохиож зурах
Тоон өгөгдөлд тохирох шугаман болон өндөр эрэмбийн регрессийн тэгшитгэлийг эксэл дээр ч хийгээд коэффициентуудыг нь олж болно. Гэхдээ Нюфлот нь өөр дээрээ итераци хийж хамааралтай бүх хэмжигдэхүүнүүдийг тодорхойлдог.
Энэ жишээнд postscript терминалыг ашигласан болно. Өндөр чанартай вектор зураглалуудыг ихэвчлэн postscript хийж болдог.
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 | # this script for compare remaining ice area reset set term postscript landscape enhanced font "Times-New-Roman, 30" #size 700,500 #500,400 set output 'Compare.esp' # set xlabel "{/=30 {/Times-Italic Time } (min)}" set ylabel "{/=30 {/Times-Italic Remaining ice area} (percent)}" set xrange [0:72] set yrange [0.5:1.01] set key top right f(x) = a*x + b # fit line 1 fit f(x) 'ice_example.dat' u 1:2 via a, b title_f(a,b) = sprintf('f(x) = %.2fx + %.2f', a, b) #f(x) = a*x **2 + b *x + e # fit line 1 #fit f(x) 'ice_example.dat' u 1:2 via a, b, e #title_f(a,b,e) = sprintf('f(x) = %.2fx **2 + %.2fx + %.2f', a, b, e) g(x) = c*x + d # fit line 2 fit g(x) 'ice_mass.dat' u 1:2 via c, d title_g(c,d) = sprintf('g(x) = %.2gx + %.2g', c, d) #f1(x) = E*exp(I*x**2) # fit line 3 #fit f1(x) 'ice_mass.dat' u 1:2 via E, I #title_f1(E,I) = sprintf('f1(x) = %.2f1*exp(%.2f1x**2)', E, I) plot 'ice_example.dat' u 1:2 w lp pt 8 pi -40 lc rgb 'red' lw 7 title 'Free surface LBM' ,\ 'ice_mass.dat' u 1:2 w p pt 5 lc rgb 'black' lw 9 title 'Experiment',\ f(x) w l ls 10 lw 4 title 'Trend line for LBM',\ g(x) w l ls 9 lw 4 title 'and for experiment' # f1(x) t title_f1(e,i), title_f(a,b),title_g(c,d) unset multiplot set term win unset output |
gnuplot> load 'Comp.p'
Iteration 0
WSSR : 1.10215e+006 delta(WSSR)/WSSR : 0
delta(WSSR) : 0 limit for stopping : 1e-005
lambda : 29.429
initial set of free parameter values
a = 1
b = 1
/
Iteration 1
WSSR : 0.806322 delta(WSSR)/WSSR : -1.36689e+006
delta(WSSR) : -1.10215e+006 limit for stopping : 1e-005
lambda : 2.9429
resultant parameter values
a = -0.0055647
b = 0.975481
/
Iteration 2
WSSR : 0.0469108 delta(WSSR)/WSSR : -16.1884
delta(WSSR) : -0.759411 limit for stopping : 1e-005
lambda : 0.29429
resultant parameter values
a = -0.00597559
b = 0.956714
/
Iteration 3
WSSR : 0.0467439 delta(WSSR)/WSSR : -0.00357196
delta(WSSR) : -0.000166967 limit for stopping : 1e-005
lambda : 0.029429
resultant parameter values
a = -0.00595424
b = 0.955687
/
Iteration 4
WSSR : 0.0467439 delta(WSSR)/WSSR : -1.07202e-009
delta(WSSR) : -5.01104e-011 limit for stopping : 1e-005
lambda : 0.0029429
resultant parameter values
a = -0.00595423
b = 0.955686
After 4 iterations the fit converged.
final sum of squares of residuals : 0.0467439
rel. change during last iteration : -1.07202e-009
degrees of freedom (FIT_NDF) : 626
rms of residuals (FIT_STDFIT) = sqrt(WSSR/ndf) : 0.00864122
variance of residuals (reduced chisquare) = WSSR/ndf : 7.46707e-005
Final set of parameters Asymptotic Standard Error
======================= ==========================
a = -0.00595423 +/- 1.652e-005 (0.2774%)
b = 0.955686 +/- 0.0006873 (0.07192%)
correlation matrix of the fit parameters:
a b
a 1.000
b -0.865 1.000
Хоёр коэффициентэд тохирох утгуудыг 4-н итерацийн дараа олсон ба утгуудыг тодруулсан байгаа.
14 дахь мөр бол зүгээр график зурахад регрессийн муруйг тэмдэглэх зорилгоор бичигдсэн юм. Өөрөөр хэлбэл муруйн тэмдэглэгээнд sprintf('f(x) = %.2fx + %.2f', a, b) гэсэн кодоор тэгшитгэл бичигдэнэ гэсэн үг юм.
Хэд хэдэн регрессийг олж зурж болох ба жишээ болгон өөр нэг мэдээнд өөр регрессийг олохыг 19-р мөрнөөс эхлэн харуулж байна. Ингэхдээ эхний бичсэн функын коммандад орсон үсэг энэ тэрийг ашиглаж болохгүй. Давхардсан тэмдэглэгээ, коэф ашиглавал код алдаа заах болно. Ингээд 27-р мөрнөөс график зурагдаж эхэлж байна. Хоёр регрессийг 29 ба 30-р мөрөнд бичсэнийг харж байгаа байх. Харин 31-р мөрөнд комманд байдлаар муруйг хэрхэн тэгшитгэлээр тэмдэглэхийг харуулж байна.
Үйлдэгдсэн ажил энэ байна. Файл бол кодын дагуу *.esp гэсэн өргөтгөлтэй гарч ирэх ба шидэтзураг (imagemagick) -ийн тусламжтайгаар ердийн зургийн форматруу хөрвүүлнэ. Ингэхдээ зурагт тавигдах шаардлага, нягтшил энэ тэрийг нь хангана. Тухайлбал
/: convert -units PixelsPerInch -density 400 хөрвүүлэх файл.esp хөрвөсөн файл.jpg
Дээрхэд зургийн pdi 400 байхаар тохируулсан байна.
Зурагт регрессүүд нь тасархай болон тасралтгүй шулуун шугамуудаар дүрслэгджээ.
График дээр сум зурах, тайлбар бичих
График дээр янз бүрийн тайлбар бичих шаардлага гардаг. Шугам муруйн тэмдэглэгээг бол график зурах коммандын араас title 'Trend line for LBM' гээд өгчихөж болдог. Гэтэл дурын газар үг бичих шаардлага бишгүй л тулгардаг. Дараах кодыг авч үзье.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # this script for compare remaining ice area reset set term postscript landscape enhanced font "Times-New-Roman, 30" #size 700,500 #500,400 set output 'Compare.esp' # set xlabel "{/=30 {/Times-Italic Time } (min)}" set ylabel "{/=30 {/Times-Italic Remaining ice area} (percent)}" set xrange [0:2.8] set yrange [0.0:1.01] set key top right set label 1 'Ice is split into 2 parts' at 0.2, 0.15 set arrow 1 from 1.3, 0.2 to 1.6, 0.3 set label 2 'One part lasted' at 1.7, 0.48 set arrow 2 from 2.2, 0.42 to 2.0, 0.1 plot '60cover.txt' u 1:2 w lp pt 12 pi -20 lc rgb 'red' lw 5 title '{/Symbol w} = 1.90, h = 60 grid' ,\ '80cover.txt' u 1:2 w lp pt 10 pi -40 lc rgb 'black' lw 5 title '{/Symbol w} = 1.87, h = 80 grid' unset multiplot set term win unset output |
Дээрх код өмнөх кодтой ижилэвтэр боловч гол ялгаа нь 13-17 - р мөрөнд оршиж байгаа юм. Энд бид 2 удаа өгүүлбэр, 2 удаа сум зурж үзүүлсэн байна. Ингэхдээ тоогоор тэмдэглэгээ болон сум /бусад геометр обьект/ энэ тэрээ set label 1 гэх маягаар тэмдэглэнэ. Гол анхаарах зүйл нь эдгээрийн байрлал бөгөөд байрлалыг тэнхлэгийн тоолол дээр суурилж өгөх хэрэгтэй. Жишээ нь 14-р мөрний set arrow 1 from 1.3, 0.2 to 1.6, 0.3 гэдэг нь сумны сүүл х тэнхлэгийн 1.3 у тэнхлэгийн 0.2 -оос эхэлж сумны үзүүр нь х тэнхлэгийн 1.6 болон у тэнхлэгийн 0.3 дээр дуусах нь байна. График ажлыг харвал:
Кодыг зурагтай сайхан харьцуулж харвал их зүйлийг ойлгох болно.
Өөр нэг том жишээ авч үзье. Хоср талдаа өөр хувиартай тэнхлэгтэй бол тэмдэглэгээний байрлалыг яаж тодорхойлох вэ гэсэн асуудал эндээс гарч магадгүй.
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 | # this script for drawing depth profile reset set term postscript landscape enhanced size 11,5 font "Times-New-Roman, 16" # #500,400 set output 'depth.esp' # set label 'A point' at 50, 0 font ',20' set title '{Ice depth and Nu_L measurement}' #{/Arial Nu_L} set ytics nomirror set y2tics set xlabel '{/Times-Italic Time} (min)' set ylabel '{/Times-Italic Ice depth} (m)' set y2label 'Nusselt number Nu_L' set xrange [0:3] # set y2range [-0.01:0.5] # set yrange [-0.005:0.06] set key at 2.65, 0.058 set label "Ice melted" at 2.35, 0.012 set arrow 1 from 2.4, 0.01 to 2.4, 0.002 set arrow 2 from 2.6, 0.01 to 2.8, 0.002 plot 'depN200.dat' u 1:2 w lp lt 5 pi -10 lc rgb 'red' lw 4 title 'Ice depth at 0.70 m' axes x1y1,\ 'depN400.dat' u 1:2 w lp lt 6 pi -10 lc rgb 'black' lw 4 title 'Ice depth at 1.00 m' axes x1y1,\ 'depN200.dat' u 1:3 w lp lt 1 pt 7 pi -5 lc rgb 'red' lw 4 title 'Nusselt number at 0.70 m' axes x1y2,\ 'depN400.dat' u 1:3 w lp lt 1 pt 8 pi -10 lc rgb 'black' lw 4 title 'Nusselt number at 1.00 m' axes x1y2 # 'xAn.dat' u 1:2 w lp lt 7 pi -10 lc rgb 'blue' lw 2 title 'Усгүй, А' ,\ # 'xCn.dat' u 1:2 w lp lt 6 lc rgb 'orange' lw 2 title 'Усгүй, С' ,\ # 'xBn.dat' u 1:2 w lp lt 5 pi -10 lc rgb 'red' lw 2 title 'Усгүй, В',\ unset multiplot set term win unset output |
Ажиглавал сум болон тэмдэглэгээний байрлал нь зөвхөн х1 болон у1 - ийн координатаар зохицуулагддаг байна.
Постскрипт терминал нь бусад терминалаас зураас, цэг гэх мэтийн хэлбэр дүрс өнгө будагны кодоороо ялгаатай. Жишээ нь цэгтэй зураасаар муруйг зурах бол цэгийн төрөл pt 7, зураасны төрлийг lt 1 тусад нь тодорхойлж өгнө.
Дараагийн Монгол Нюфлотчин байх болов уу??
No comments:
Post a Comment