Gnuplot 5.0. DIY Spiderplot 4 අක්ෂය මත

Gnuplot 5.0. DIY Spiderplot 4 අක්ෂය මත
ලිපියක් සඳහා දත්ත දෘශ්‍යකරණය මත වැඩ කරන විට, සියල්ලටම ධනාත්මක ලේබල් සහිත අක්ෂ 4ක් තිබීම අවශ්‍ය විය.

ලිපියේ අනෙකුත් ප්‍රස්ථාර මෙන්, මම භාවිතා කිරීමට තීරණය කළෙමි gnuplot. පළමුවෙන්ම, මම බොහෝ උදාහරණ ඇති නිල වෙබ් අඩවිය දෙස බැලුවෙමි. හරි එක හොයාගත්තම ගොඩක් සතුටුයි උදාහරණයකි (මම ගොනුවක් සමඟ ටිකක් වැඩ කරන්නම්, එය ලස්සන වනු ඇත, මම සිතුවෙමි).
Gnuplot 5.0. DIY Spiderplot 4 අක්ෂය මත
මම ඉක්මනින් කේතය පිටපත් කර එය ධාවනය කළෙමි. මට දෝෂයක් ලැබෙනවා. මම එය හදුනා ගනිමින් සිටිමි. මට පැරණි gnuplot එකක් ඇති බව පෙනී ගියේය (Version 5.0 patchlevel 3 last modified 2016-02-21) සහ ඔහුට එය කළ නොහැක.

gnuplot හි නම්‍යශීලී බව ගැන දැනගත් මම ලෝක ව්‍යාප්ත ජාලය පිරික්සීමට පටන් ගත් අතර stackoverflow පිළිබඳ සුදුසු උදාහරණ කිහිපයක් හමු විය (Gnuplot සමඟ මකුළු බිම් කැබැල්ලක ද්විත්ව x අක්ෂය и Gnuplot හි Spider Plot එකක් සාදා ගන්නේ කෙසේද?) සහ ගිතුබ් (gnuplot-radarchart) ඔවුන් ආරම්භක ස්ථානය බවට පත් විය.

තවද, විධානයන් සමඟ මගේ උපාමාරු පහත සඳහන් දේවලට හේතු විය:

0) අබල කරන්න දේශසීමා

unset border

1) ශුන්‍ය රේඛා 4ක් සාදන්න - ප්‍රධාන 2ක් සහ අමතර 2ක්:

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

ශුන්‍ය රේඛා ගැන වචන කිහිපයක් ලියකියවිලි. මෙම මෙහෙයුම මඟින් ඔබට පින්තූරයේ මැදට අක්ෂ ගෙන ඒමට ඉඩ සලසයි. තවද ඒවා මත ධනාත්මක කිනිතුල්ලන් පෙන්වීමට අමතර ඒවා අවශ්ය වේ.

2) අක්ෂයන්හි කිනිතුල්ලන්ගේ සංදර්ශකය සකසන්න:

max = 1.5 # Для гибкости
min = -max
set xtics  axis  0,.5,max in scale 0.5,0.25 mirror norotate  autojustify offset 0.35
set ytics  axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify            
set x2tics axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify            
set y2tics axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify            

අක්ෂයන්හි කිනිතුල්ලන් සමඟ තව ටිකක් සැකසුම් ඇත.
axis - කිනිතුල්ලන් පිහිටා ඇති තැන, අක්ෂයේ හෝ (මායිම - මායිමේ).
අක්ෂය සඳහා x, දකුණට යන 0,.5,max. පළමු අංකය ගණන් කිරීමේ ආරම්භයයි, දෙවැන්න පියවරයි, තෙවනුව ගණන් කිරීමේ අවසානයයි. සිට පළමු සඳහා 0, සහ ඉතිරිය සඳහා 0.5, එම ශුන්‍ය මූලාරම්භයට බාධා නොවන පරිදි.

Gnuplot 5.0. DIY Spiderplot 4 අක්ෂය මත
Gnuplot 5.0. DIY Spiderplot 4 අක්ෂය මත

සම්බන්ධීකරණ මධ්යස්ථානයේ ශුන්ය මිශ්ර කිරීම.
සියලු විරාමයන් *tics ලෙස වින්‍යාස කර ඇත 0,.5,max
නැතිව offset 0.35 සඳහා xtics

ගැලපුම් scale 0.5,0.25 mirror අක්ෂයට සටහන් එකතු කරයි. ඔබ ඉලක්කම් සමඟ සෙල්ලම් කරන්නේ නම්, ඒවායේ ප්රමාණය වෙනස් වනු ඇත.
මමත් variables ඇතුලත් කරනවා max, min, මම ප්රස්ථාර අක්ෂවල මායිම් පාලනය කරන උපකාරයෙන්.
කිනිතුල්ලන් සැකසීම පිළිබඳ අමතර තොරතුරු කොටසේ ලියකියවිලි වලින් සොයාගත හැකිය Xtics.

3) අක්ෂ පරාස සකසන්න:

set xrange  [ min : max ] 
set yrange  [ min : max ]
set x2range [ max : min ]
set y2range [ max : min ]

මෙහි අක්ෂ 2 ආරම්භ වන බව සඳහන් කළ යුතුය min විශාලනය සහ අක්ෂ 2 සඳහා - සමග max අඩු කිරීමට.
කොටසේ අමතර තොරතුරු Xrange.

4) අක්ෂයන්හි නම් ලබා දී ඒවා අලංකාර ලෙස තබන්න:

set label "H_1" at  0,       max center offset char  2, 0
set label "H_2" at  max+0.1, 0   center offset char -1, 1
set label "H_3" at  0,       min center offset char -2, 0
set label "H_4" at  min,     0   center offset char  0, 1

5) ආදාන දත්ත සැකසීම
සෑම ප්‍රස්ථාරයකටම තීරු 2ක් ඇත. රේඛා අංකය - අක්ෂ අංකය, ලූපය වැසීමට පස්වන පේළිය. ඔත්තේ තීරුව - සම්බන්ධීකරණය x, පවා - y. සියලුම ලක්ෂ්ය අක්ෂ මත පිහිටා ඇති නිසා, පසුව යුගලයෙන් (x, y) එකක් සෑම විටම ශුන්‍ය වේ.
අක්ෂ 4ම ධන වුවද, සමහර දත්ත ප්‍රධාන අක්ෂවල පිහිටා ඇති නිසා කෘත්‍රිමව සෘණ අර්ධයට ගෙන යයි. x и y.

 0  1  0     1.21
 1  0  1.21  0   
 0 -1  0    -1.06
-1  0 -1.19  0   
 0  1  0     1.21 #Дубликат первой точки

ප්රතිඵලය
Gnuplot 5.0. DIY Spiderplot 4 අක්ෂය මත
සම්පූර්ණ කේතය

#!/usr/bin/gnuplot -persist
#файл в кодировке cp1251 чтоб русские буквы отображались в eps

set encoding cp1251
set terminal postscript eps enhanced monochrome size 5cm,5cm
set output "./img/eps/fig2.eps"

unset border
set key at -2, 1.5 font 'LiberationSerif, 23' 
set key left top samplen 4.5

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

max = 1.5
min = -max

set xtics  axis  0,.5,max in scale 0.5,0.25 mirror norotate  autojustify offset 0.35 font 'LiberationSerif, 20
set ytics  axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify             font 'LiberationSerif, 20
set x2tics axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify             font 'LiberationSerif, 20
set y2tics axis .5,.5,max in scale 0.5,0.25 mirror norotate  autojustify             font 'LiberationSerif, 20

set xrange  [ min : max ]
set yrange  [ min : max ]
set x2range [ max : min ]
set y2range [ max : min ]

set label "H_1" at  0,       max center offset char  2, 0   font 'LiberationSerif, 23'
set label "H_2" at  max+0.1, 0   center offset char -1, 1   font 'LiberationSerif, 23'
set label "H_3" at  0,       min center offset char -2, 0   font 'LiberationSerif, 23'
set label "H_4" at  min,     0   center offset char  0, 1   font 'LiberationSerif, 23'

set style line 1 linetype 1 pointtype 7 linewidth 3 linecolor black
set style line 2 linetype 2 pointtype 7 linewidth 3 linecolor black

plot 'data.csv' using  1:2 title "1" w lp ls 1 ,
     'data.csv' using  3:4 title "2" w lp ls 2

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න