gnuplot 5.0. Spiderplot uz 4 asīm dari to pats

gnuplot 5.0. Spiderplot uz 4 asīm dari to pats
Strādājot pie raksta datu vizualizācijas, radās nepieciešamība uz visām 4 asis ar pozitīvām etiķetēm.

Tāpat kā citas rakstā esošās diagrammas, es nolēmu izmantot gnuplot. Pirmkārt, apskatīju oficiālo vietni, kur ir daudz piemēru. Es biju ļoti priecīgs, kad atradu īsto piemērs (Es nedaudz pastrādāšu ar failu, un tas būs skaisti, es domāju).
gnuplot 5.0. Spiderplot uz 4 asīm dari to pats
Es ātri nokopēju kodu un palaidu to. Es saņemu kļūdu. Es to izdomāju. Izrādījās, ka man ir vecs gnuplots (Version 5.0 patchlevel 3 last modified 2016-02-21), un viņš to nevar izdarīt.

Zinot par gnuplot elastību, es sāku pārlūkot globālo tīmekli un atradu vairākus piemērotus piemērus par stackoverflow (Divkāršā x ass zirnekļa diagrammā ar Gnuplot и Kā izveidot zirnekļa sižetu programmā Gnuplot?) un github (gnuplot-radarchart). Viņi kļuva par sākuma punktu.

Turklāt manas manipulācijas ar komandām noveda pie sekojošā:

0) Atspējot robežas

unset border

1) Izveidojiet 4 nulles līnijas — 2 galvenās un 2 papildu:

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

Daži vārdi par nulles rindiņām dokumentācija. Šī darbība ļauj novirzīt asis attēla centrā. Un ir nepieciešami papildu, lai uz tiem parādītu pozitīvas ērces.

2) Iestatiet ērču rādīšanu uz asīm:

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            

Ar ērcēm uz asīm ir nedaudz vairāk iestatījumu.
axis - kur atradīsies ērces, uz ass vai (robeža - uz robežas).
Par asi x, kas iet pa labi 0,.5,max. Pirmais cipars ir atpakaļskaitīšanas sākums, otrais ir solis, trešais ir atpakaļskaitīšanas beigas. Pirmajam no plkst 0, un par pārējo no plkst 0.5, lai nulles netraucētu izcelsmei.

gnuplot 5.0. Spiderplot uz 4 asīm dari to pats
gnuplot 5.0. Spiderplot uz 4 asīm dari to pats

Nulles sajaukšana koordinātu centrā.
Visi intervāli *tics konfigurēts kā 0,.5,max
bez offset 0.35 par xtics

koriģēšana scale 0.5,0.25 mirror pievieno iecirtumus asij. Ja spēlēsi ar cipariem, mainīsies to lielums.
Es arī ievadu mainīgos max, min, ar kuras palīdzību es kontrolēju grafa asu robežas.
Papildu informāciju par ērču iestatīšanu var atrast dokumentācijā sadaļā Xtics.

3) Iestatiet asu diapazonus:

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

Šeit jāatzīmē, ka 2 asis sākas no min palielinājumam un 2 asīm - ar max Samazināt.
Papildus informācija sadaļā Xrange.

4) Piešķiriet asīm nosaukumus un novietojiet tās skaisti:

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) Ievaddatu veidošana
Katrā diagrammā ir 2 kolonnas. Rindas numurs - ass numurs, piektā rinda, lai aizvērtu cilpu. Nepāra kolonna - koordināte x, pat - y. Sakarā ar to, ka visi punkti atrodas uz asīm, tad no pāra (x, y) viens vienmēr ir nulle.
Pat ja visas 4 asis ir pozitīvas, daži dati tiek mākslīgi pārvietoti uz negatīvo pusi, jo tie atrodas uz galvenajām asīm 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 #Дубликат первой точки

Piedzīvojiet efektīvu rezultātu spēku
gnuplot 5.0. Spiderplot uz 4 asīm dari to pats
Pilns kods

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

Avots: www.habr.com

Pievieno komentāru