gnuplot 5.0. Spiderplot á 4 ásum gerðu það sjálfur

gnuplot 5.0. Spiderplot á 4 ásum gerðu það sjálfur
Þegar unnið var að gagnasýn fyrir grein varð nauðsynlegt að hafa 4 ása með jákvæðum merkjum á öllum.

Eins og með önnur línurit í greininni ákvað ég að nota gnuplot. Fyrst af öllu leit ég á opinberu vefsíðuna þar sem mörg dæmi eru til. Ég var mjög ánægður þegar ég fann þann rétta Dæmi (Ég mun vinna með skrá smá og hún verður falleg, hugsaði ég).
gnuplot 5.0. Spiderplot á 4 ásum gerðu það sjálfur
Ég afritaði kóðann fljótt og hljóp hann. Ég fæ villu. Ég er að átta mig á því. Það kom í ljós að ég er með gamlan gnuplot (Version 5.0 patchlevel 3 last modified 2016-02-21) og hann getur það ekki.

Þegar ég vissi um sveigjanleika gnuplot byrjaði ég að skoða veraldarvefinn og rakst á nokkur hentug dæmi um stackoverflow (Tvöfaldur x-ás á spider plot með Gnuplot и Hvernig á að búa til köngulóarsamsæri í Gnuplot?) og github (gnuplot-radarchart). Þeir urðu upphafið.

Ennfremur leiddu meðhöndlun mín með skipunum til eftirfarandi:

0) Slökkva landamærin

unset border

1) Búðu til 4 núlllínur - 2 aðal og 2 til viðbótar:

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

Nokkur orð um núll línur inn skjöl. Þessi aðgerð gerir þér kleift að færa ásana að miðju myndarinnar. Og fleiri þarf til að sýna jákvæða merkingu á þeim.

2) Settu upp skjáinn á merkjum á ásunum:

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            

Með merkjum á ásunum eru aðeins fleiri stillingar.
axis - hvar merkingarnar verða staðsettar, á ásnum eða (landamæri - á mörkum).
Fyrir ás x, sem fer til hægri 0,.5,max. Fyrsta talan er upphaf niðurtalningarinnar, önnur er skrefið, þriðja er lok niðurtalningarinnar. Fyrir fyrsta frá 0, og fyrir rest frá 0.5, svo að núllin trufli ekki upprunann.

gnuplot 5.0. Spiderplot á 4 ásum gerðu það sjálfur
gnuplot 5.0. Spiderplot á 4 ásum gerðu það sjálfur

Blöndun núll við hnitamiðju.
Öll millibili *tics stillt sem 0,.5,max
Án offset 0.35 í xtics

aðlögun scale 0.5,0.25 mirror bætir hak við ásinn. Ef þú spilar með tölurnar breytist stærð þeirra.
Ég set líka inn breytur max, min, með hjálp sem ég stjórna mörkum grafásanna.
Frekari upplýsingar um að setja merkingar er að finna í skjölunum í kaflanum Xtics.

3) Settu upp ássvið:

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

Hér skal tekið fram að 2 ásarnir byrja frá min fyrir stækkun og 2 ása - með max að minnka.
Viðbótarupplýsingar í kaflanum Xrange.

4) Gefðu ásunum nöfn og settu þær fallega:

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) Að mynda inntaksgögnin
Hvert línurit hefur 2 dálka. Línunúmer - ásnúmer, fimmta lína til að loka lykkjunni. Oddur dálkur - hnit x, jafnvel - y. Vegna þess að allir punktar eru staðsettir á ásunum, þá frá parinu (x, y) einn er alltaf núll.
Jafnvel þó að allir 4 ásarnir séu jákvæðir eru sum gögn færð tilbúnar í neikvæða helminginn vegna þess að þau eru staðsett á aðalásunum 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 #Дубликат первой точки

Niðurstaðan
gnuplot 5.0. Spiderplot á 4 ásum gerðu það sjálfur
Fullur kóði

#!/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

Heimild: www.habr.com

Bæta við athugasemd