Gnuplot 5.0. Creiamo un grafico a ragno su 4 assi da zero

Gnuplot 5.0. Creiamo un grafico a ragno su 4 assi da zero
Durante la realizzazione della 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. Per prima cosa, sono andato sul sito ufficiale, dove ci sono molti esempi. Sono stato molto contento quando ho trovato quello che cercavo esempio (dopo qualche ritocco, sarà bello, ho pensato).
Gnuplot 5.0. Creiamo un grafico a ragno su 4 assi da zero
Ho copiato rapidamente il codice, lo eseguo. Ricevo un errore. Analizzo. Si è scoperto che ho una versione vecchia di gnuplot (Versione 5.0 patchlevel 3 ultima modifica 2016-02-21) e non supporta questa funzionalità.

Sapendo della flessibilità di gnuplot, ho iniziato a cercare nel vasto oceano del web e ho trovato alcuni esempi utili su stackoverflow (Double x-axis on a spider plot with Gnuplot e How to Create a Spider Plot in Gnuplot?) e github (gnuplot-radarchart). Sono stati un punto di partenza.

Successivamente, le mie manovre con i comandi hanno portato a quanto segue:

0) Disabiliamo i bordi

unset border

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

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

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

2) Configuriamo la visualizzazione delle etichette 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            

Con le tacche sugli assi c'è un po' più di impostazioni.
asse — dove si trovano le tacche, sull'asse o (border — al confine).
Per l'asse x, che si estende a destra 0,.5,max. Il primo numero è l'inizio della misurazione, il secondo è il passo, il terzo è la fine della misurazione. Per il primo da 0, e per gli altri da 0.5, in modo che gli zeri non si sovrappongano all'origine.

Gnuplot 5.0. Creiamo un grafico a ragno su 4 assi da zero
Gnuplot 5.0. Creiamo un grafico a ragno su 4 assi da zero

Miscelazione degli zeri al centro del piano cartesiano.
Tutti gli intervalli *tics sono impostati come 0,.5,max
Senza offset 0.35 per xtics

Impostazione scale 0.5,0.25 mirror aggiunge tacche all'asse. Giocando con i numeri, si può cambiare la loro dimensione.
Introduco anche le variabili max, min, con le quali gestisco i limiti degli assi del grafico.
Ulteriori informazioni sulla configurazione delle tacche sono disponibili 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 ]

Qui è importante notare che 2 assi iniziano la misurazione da min in aumento e 2 assi — da max riducendo.
Ulteriori informazioni nella sezione Xrange.

4) Assegnamo nomi agli assi e li disponiamo 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 ingresso
Ogni grafico utilizza 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, in ogni coppia (x, y) una sarà sempre zero.
Nonostante tutti e 4 gli assi siano positivi, alcuni dati vengono artificialmente spostati 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. Creiamo un grafico a ragno su 4 assi da zero
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