gnplot 5.0. Spiderplot su 4 assi fai da te

gnplot 5.0. Spiderplot su 4 assi fai da te
Quando si lavorava sulla visualizzazione dei dati per un articolo, si è reso necessario avere 4 assi con etichette positive su tutti.

Come con gli altri grafici nell'articolo, ho deciso di utilizzare gnplot. Prima di tutto ho guardato il sito ufficiale, dove ci sono molti esempi. Sono stato molto felice quando ho trovato quello giusto esempio (Lavorerò un po’ con un file e sarà bellissimo, ho pensato).
gnplot 5.0. Spiderplot su 4 assi fai da te
Ho copiato rapidamente il codice e l'ho eseguito. Ottengo un errore. Lo sto capendo. Si è scoperto che ho un vecchio gnuplot (Version 5.0 patchlevel 3 last modified 2016-02-21) e non può farlo.

Conoscendo la flessibilità di gnuplot, ho iniziato a frugare nel World Wide Web e mi sono imbattuto in diversi esempi adatti su StackOverflow (Doppio asse x su uno spider plot con Gnuplot и Come creare una trama ragno in Gnuplot?) e github (gnuplot-radarchart). Sono diventati il ​​punto di partenza.

Inoltre, le mie manipolazioni con i comandi hanno portato a quanto segue:

0) Disabilita confini

unset border

1) Crea 4 linee zero - 2 principali e 2 aggiuntive:

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

Qualche parola sulle righe zero in documentazione. Questa operazione permette di portare gli assi al centro dell'immagine. E ne sono necessari altri aggiuntivi per visualizzare segni di spunta positivi su di essi.

2) Configurare la visualizzazione dei tick sugli assi:

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            

Con i segni di spunta sugli assi ci sono un po' più di impostazioni.
axis - dove si troveranno le zecche, sull'asse o (bordo - sul confine).
Per asse x, che va a destra 0,.5,max. Il primo numero è l'inizio del conto alla rovescia, il secondo è il passo, il terzo è la fine del conto alla rovescia. Per il primo da 0, e per il resto da 0.5, in modo che gli zeri non interferiscano con l'origine.

gnplot 5.0. Spiderplot su 4 assi fai da te
gnplot 5.0. Spiderplot su 4 assi fai da te

Mischia gli zeri al centro delle coordinate.
Tutti gli intervalli *tics configurato come 0,.5,max
Senza offset 0.35 per xtics

registrazione scale 0.5,0.25 mirror aggiunge tacche all'asse. Se giochi con i numeri, la loro dimensione cambierà.
Inserisco anche le variabili max, min, con l'aiuto del quale controllo i confini degli assi del grafico.
Ulteriori informazioni sull'impostazione dei tick sono disponibili nella documentazione nella sezione Xtics.

3) Imposta gli intervalli degli assi:

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

Da notare qui che i 2 assi partono da min per ingrandimento e 2 assi - con max diminuire.
Ulteriori informazioni nella sezione Xrange.

4) Dai nomi agli assi e posizionali magnificamente:

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) Formazione dei dati di input
Ogni grafico ha 2 colonne. Numero di riga - numero di asse, quinta riga per chiudere il ciclo. Colonna dispari - coordinata x, Anche - y. A causa del fatto che tutti i punti si trovano sugli assi, quindi dalla coppia (x, y) uno è sempre zero.
Anche se tutti e 4 gli assi sono positivi, alcuni dati vengono spostati artificialmente nella metà negativa perché si trovano sugli assi principali 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 #Дубликат первой точки

risultato
gnplot 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

Aggiungi un commento