gnuplot 5.0. Spiderplot 4 akselilla tee se itse

gnuplot 5.0. Spiderplot 4 akselilla tee se itse
Artikkelin tietojen visualisoinnin parissa tarvittiin neljää akselia, joissa kaikissa oli positiiviset merkinnät.

Kuten muutkin artikkelin kaaviot, päätin käyttää Gnuplot. Ensinnäkin katsoin virallista verkkosivustoa, jossa on monia esimerkkejä. Olin erittäin iloinen, kun löysin oikean esimerkki (Työskentelen hieman viilalla ja siitä tulee kaunis, ajattelin).
gnuplot 5.0. Spiderplot 4 akselilla tee se itse
Kopioin koodin nopeasti ja suoritin sen. Saan virheilmoituksen. Selvittelen sitä. Kävi ilmi, että minulla on vanha gnuplot (Version 5.0 patchlevel 3 last modified 2016-02-21) eikä hän voi tehdä sitä.

Tietäen gnuplotin joustavuuden, aloin selata World Wide Webiä ja löysin useita sopivia esimerkkejä stackoverflowsta (Kaksois-x-akseli hämähäkkikuvaajalla Gnuplotilla и Kuinka luoda hämähäkkijuoni Gnuplotissa?) ja github (gnuplot-radarchart). Niistä tuli lähtökohta.

Lisäksi manipulointini komentojen kanssa johti seuraavaan:

0) Poista käytöstä rajat

unset border

1) Luo 4 nollariviä - 2 pää- ja 2 muuta:

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

Muutama sana nollarivista dokumentointi. Tämän toiminnon avulla voit tuoda akselit kuvan keskelle. Ja lisää tarvitaan, jotta niissä näkyy positiivisia punkkeja.

2) Aseta punkkien näyttö akseleille:

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            

Akseleiden tikkeillä on hieman enemmän asetuksia.
axis - missä punkit sijaitsevat, akselilla tai (raja - rajalla).
akselille x, joka menee oikealle 0,.5,max. Ensimmäinen numero on lähtölaskennan alku, toinen on vaihe, kolmas on lähtölaskenta. Ensimmäistä kertaa alkaen 0, ja loput alkaen 0.5, jotta nollat ​​eivät häiritse origoa.

gnuplot 5.0. Spiderplot 4 akselilla tee se itse
gnuplot 5.0. Spiderplot 4 akselilla tee se itse

Nollien sekoittaminen koordinaattien keskipisteessä.
Kaikki intervallit *tics määritetty nimellä 0,.5,max
ilman offset 0.35 varten xtics

säätö scale 0.5,0.25 mirror lisää lovia akseliin. Jos pelaat numeroilla, niiden koko muuttuu.
Syötän myös muuttujia max, min, jonka avulla ohjaan graafin akselien rajoja.
Lisätietoa punkkien asettamisesta löytyy osion dokumentaatiosta Xtics.

3) Aseta akselialueet:

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

Tässä on huomattava, että 2 akselia alkavat min suurennusta varten ja 2 akselia - kanssa max vähentää.
Lisätiedot osiossa Xrange.

4) Anna akseleille nimet ja sijoita ne kauniisti:

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) Syöttötietojen muodostaminen
Jokaisessa kaaviossa on 2 saraketta. Rivin numero - akselin numero, viides rivi silmukan sulkemiseksi. Pariton sarake - koordinaatti x, jopa - y. Johtuen siitä, että kaikki pisteet sijaitsevat akseleilla, sitten parista (x, y) yksi on aina nolla.
Vaikka kaikki 4 akselia ovat positiivisia, jotkut tiedot siirretään keinotekoisesti negatiiviselle puolikkaalle, koska ne sijaitsevat pääakseleilla 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 #Дубликат первой точки

Tulos
gnuplot 5.0. Spiderplot 4 akselilla tee se itse
Täysi koodi

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

Lähde: will.com

Lisää kommentti