gnuplot 5.0. Spiderplot na 4 osi napravite sami

gnuplot 5.0. Spiderplot na 4 osi napravite sami
Tijekom rada na vizualizaciji podataka za članak, postalo je potrebno imati 4 osi s pozitivnim oznakama na svakoj od njih.

Kao i kod ostalih grafova u članku, odlučio sam koristiti gnuplotPrvo što sam napravio bilo je provjeriti službenu web stranicu, koja ima hrpu primjera. Bio sam jako sretan kada sam pronašao onaj koji mi je trebao. primjer (Malo ću poraditi s turpijom i bit će prekrasno, pomislio sam).
gnuplot 5.0. Spiderplot na 4 osi napravite sami
Brzo sam kopirao kod i pokrenuo ga. Dobio sam grešku. Shvatio sam. Ispostavilo se da imam stari gnuplot (Version 5.0 patchlevel 3 last modified 2016-02-21) i on to ne može učiniti.

Znajući za fleksibilnost gnuplota, počeo sam pretraživati ​​prostranstva interneta i naišao na nekoliko prikladnih primjera na stackoverflowu (Dvostruka x-os na paukovom dijagramu s Gnuplotom и Kako stvoriti paukovu sliku u Gnuplotu?) i github (gnuplot-radarchart). Postali su polazna točka.

Zatim, moje manipulacije s naredbama dovele su do sljedećeg:

0) Isključite ga granice

unset border

1) Napravite 4 nulte linije - 2 glavne i 2 dodatne:

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

Nekoliko riječi o nultim linijama u dokumentacijaOva operacija vam omogućuje centriranje osi na crtežu. Dodatne osi su potrebne za prikaz pozitivnih oznaka.

2) Konfigurirajte prikaz oznaka na osima:

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            

Ima malo više postavki s kvačicama na osima.
axis — gdje će se kvačice nalaziti, na osi ili (granici).
Za os x, koji ide udesno 0,.5,maxPrvi broj označava početak odbrojavanja, drugi je korak, a treći je kraj odbrojavanja. Za prvi 0, a za ostatak od 0.5tako da nule ne smetaju u ishodištu.

gnuplot 5.0. Spiderplot na 4 osi napravite sami
gnuplot 5.0. Spiderplot na 4 osi napravite sami

Miješanje nula u koordinatnom centru.
Svi intervali *tics konfigurirano kao 0,.5,max
Без offset 0.35 za xtics

podešavanje scale 0.5,0.25 mirror Dodaje oznake na os. Ako se igrate s brojevima, njihova veličina će se promijeniti.
Također uvodim varijable max, min, uz pomoć kojih kontroliram granice osi grafa.
Dodatne informacije o postavljanju oznaka možete pronaći u dokumentaciji u odjeljku Xtics.

3) Postavite raspone osi:

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

Ovdje treba napomenuti da 2 osi počinju brojati od min za povećanje i 2 osi - s max smanjiti.
Dodatne informacije u odjeljku Xrange.

4) Dajemo sjekirama imena i lijepo ih slažemo:

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) Generiranje ulaznih podataka
Svaki graf ima dva stupca. Broj retka je broj osi, peti redak se koristi za zatvaranje konture. Neparni stupac je koordinata. x, čak - yBudući da se sve točke nalaze na osima, tada iz para (x, y) jedan je uvijek jednak nuli.
Iako su sve 4 osi pozitivne, neki podaci su umjetno pomaknuti u negativnu polovicu jer se nalaze na glavnim osima. 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 #Дубликат первой точки

Rezultirati
gnuplot 5.0. Spiderplot na 4 osi napravite sami
Puni kod

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

Izvor: www.habr.com

Kupite pouzdan hosting za stranice s DDoS zaštitom, VPS VDS poslužiteljima 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster