Gnuplot 5.0. Spiderplot me 4 akse vetë

Gnuplot 5.0. Spiderplot me 4 akse vetë
Gjatë punës me vizualizimin e të dhënave për artikullin, u krijua nevoja për të pasur 4 ose me etiketat pozitive në të gjitha.

Si për grafikonet e tjera të artikullit, vendosa të përdor gnuplot. Së pari, shikoja në faqen zyrtare, ku kishte shumë shembuj. U gëzova kur zbulova të nevojshmen shembull (nuk do të punoj shumë dhe do të duket bukur, mendoja).
Gnuplot 5.0. Spiderplot me 4 akse vetë
Shpejt kopjova kodin, e ekzekutoj. Marr një gabim. Kuptoj. Doli që kisha një gnuplot të vjetër (Version 5.0 patchlevel 3 modifikuar për herë të fundit 2016-02-21) dhe ai nuk e suporton këtë.

Duke ditur fleksibilitetin e gnuplot, fillova të kërkoj në hapësirat e internetit dhe natën në disa shembuj të përshtatshëm në stackoverflow (Double x-axis on a spider plot with Gnuplot dhe How to Create a Spider Plot in Gnuplot?) dhe github (gnuplot-radarchart). Ato u bënë pika fillestare.

Më pas, manipulimet e mia me komandat çuan në këtë:

0) Çaktivizojmë kufijtë

unset border

1) Krijojmë 4 linja zero — 2 kryesore dhe 2 shtesë:

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

Një fjalë për linjat zero në dokumentacion. Kjo operacion lejon që osët të vendosen në qendër të vizatimit. Shtesat janë të nevojshme për të shfaqur tikat pozitive.

2) Konfigurojmë shfaqjen e tikeve në osë:

max = 1.5 # Për fleksibilitet
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 tica në akset e konfigurimit pak më shumë.
aks — ku do të gjenden tica, në aks ose (border — në kufi).
Për aksin x, i cili shkon në të djathtë 0,.5,max. Numri i parë — fillimi i numërimit, i dyti — hapi, i treti — fundi i numërimit. Për të parin nga 0, dhe për të tjerët nga 0.5, që zerot të mos pengojnë në fillimin e koordinatave.

Gnuplot 5.0. Spiderplot me 4 akse vetë
Gnuplot 5.0. Spiderplot me 4 akse vetë

Përzierja e zerove në qendër të koordinatave.
Të gjitha intervalet *tics janë të rregulluara si 0,.5,max
Pa offset 0.35 për xtics

Konfigurimi scale 0.5,0.25 mirror shton ndihmës në aks. Nëse luani me numrat, do të ndryshojë madhësia e tyre.
Gjithashtu, po fut variablat max, min, me ndihmën e të cilave menaxhoj kufijtë e akseve të grafikut.
Informata shtesë mbi konfigurimin e ticave mund të gjendet në dokumentacion në seksionin Xtics.

3) Rregullojmë intervalet e akseve:

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

Këtu duhet theksuar se 2 akse nisin numërimin nga min në rritje dhe 2 akse — nga max në zvogëlim.
Informata shtesë në seksionin Xrange.

4) Jepni emra boshtave dhe vendosni ato bukur:

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) Formojmë të dhënat hyrëse
Për secilën grafikë janë caktuar 2 kolona. Numri i rreshtit – numri i boshtit, rreshti i pestë, për të mbyllur konturin. Kolona tek – koordinata x, kolona çift — y. Duke pas parasysh se të gjitha piket ndodhen në boshtet, atëherë nga çifti (x, y) njëra gjithmonë është e barabartë me zero.
Megjithëse të gjitha 4 boshtet janë pozitive, disa të dhëna lëvizin artificialisht në gjysmën negative, sepse ndodhen në boshtet kryesore. x dhe 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 #Duplikat e pikës së parë

Rezultati
Gnuplot 5.0. Spiderplot me 4 akse vetë
Kodi i plotë

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

Burimi: habr.com

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster