Gnuplot 5.0. Spiderplot su 4 assi fai-da-te

Gnuplot 5.0. Spiderplot su 4 assi fai-da-te
Lavorando alla visualizzazione dei dati per l'articolo, è emersa la necessità di avere 4 assi con etichette positive su tutti.

Come per altri grafici dell'articolo, ho deciso di utilizzare gnuplot. Prima di tutto sono andato sul sito ufficiale, dove ci sono molti esempi. Sono stato molto contento quando ho trovato quello giusto un esempio (lavorerò un po' con la lima e sarà bello, ho pensato).
Gnuplot 5.0. Spiderplot su 4 assi fai-da-te
Ho velocemente copiato il codice e l'ho eseguito. Ho ricevuto un errore. Sto analizzando. Si è scoperto che avevo una versione obsoleta di gnuplot (Versione 5.0 patchlevel 3 ultima modifica 2016-02-21) e non può fare così.

Sapendo della flessibilità di gnuplot, ho iniziato a cercare nelle vastità del web e sono inciampato su diversi esempi pertinenti su stackoverflow (Doppio asse x su un grafico a ragno con Gnuplot e Come creare un grafico a ragno in Gnuplot?) e github (gnuplot-radarchart). Questi sono stati il punto di partenza.

Successivamente, le mie manovre con i comandi hanno portato al seguente risultato:

0) Disabilitiamo i bordi

unset border

1) Creiamo 4 linee nulle — 2 principali e 2 aggiuntive:

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

Due parole sulle linee nulle in documentazione. Questa operazione consente di centrare gli assi nel disegno. Le aggiuntive sono necessarie per visualizzare le tacche positive.

2) Configuriamo la visualizzazione delle tacche sugli assi:

max = 1.5 # Per flessibilità
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            

Ci sono un po' più di impostazioni riguardo le tacche sugli assi.
axis — dove si troveranno le tacche, sull'asse o (border — al confine).
Per l'asse x, che va verso destra 0,.5,max. Il primo numero è l'inizio del conteggio, il secondo è il passo, il terzo è la fine del conteggio. Per il primo da 0, ma per gli altri da 0.5, in modo che gli zeri non disturbino all'inizio delle coordinate.

Gnuplot 5.0. Spiderplot su 4 assi fai-da-te
Gnuplot 5.0. Spiderplot su 4 assi fai-da-te

Miscelazione degli zeri nel centro delle coordinate.
Tutti gli intervalli *tics sono configurati come 0,.5,max
Senza offset 0.35 per xtics

Configurazione scale 0.5,0.25 mirror aggiunge tacche all'asse. Se si gioca con i numeri, cambierà la loro dimensione.
Introduco anche le variabili max, min, con cui gestisco i limiti degli assi del grafico.
Ulteriori informazioni sulla configurazione delle tacche possono essere trovate nella documentazione nella sezione Xtics.

3) Configuriamo gli intervalli degli assi:

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

Va notato che 2 assi iniziano il conteggio da min in aumento e 2 assi — da max in diminuzione.
Ulteriori informazioni nella sezione Xrange.

4) Assegniamo nomi agli assi e li posizioniamo in modo elegante:

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) Formiamo i dati di input
Per ogni grafico sono riservate 2 colonne. Il numero di riga corrisponde al numero dell'asse, la quinta riga serve a chiudere il contorno. La colonna dispari rappresenta la coordinata x, la pari — y. Poiché tutti i punti si trovano sugli assi, una delle coppie (x, y) è sempre uguale a zero.
Nonostante tutte e 4 le assi siano positive, alcuni dati vengono spostati artificialmente nella metà negativa, poiché si trovano sugli assi principali x e 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 #Duplicato del primo punto

Risultato
Gnuplot 5.0. Spiderplot su 4 assi fai-da-te
Codice completo

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

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster