gnuplot 5.0. Spiderplot σε 4 άξονες κάντε το μόνοι σας

gnuplot 5.0. Spiderplot σε 4 άξονες κάντε το μόνοι σας
Όταν εργάζεστε στην οπτικοποίηση δεδομένων για ένα άρθρο, κατέστη απαραίτητο να υπάρχουν 4 άξονες με θετικές ετικέτες σε όλους.

Όπως και με άλλα γραφήματα στο άρθρο, αποφάσισα να χρησιμοποιήσω gnuplot. Πρώτα απ 'όλα, κοίταξα τον επίσημο ιστότοπο, όπου υπάρχουν πολλά παραδείγματα. Χάρηκα πολύ όταν βρήκα το κατάλληλο παράδειγμα (Θα δουλέψω λίγο με ένα αρχείο και θα είναι όμορφο, σκέφτηκα).
gnuplot 5.0. Spiderplot σε 4 άξονες κάντε το μόνοι σας
Αντέγραψα γρήγορα τον κώδικα και τον έτρεξα. Λαμβάνω ένα σφάλμα. Το ανακαλύπτω. Αποδείχθηκε ότι έχω ένα παλιό gnuplot (Version 5.0 patchlevel 3 last modified 2016-02-21) και δεν μπορεί να το κάνει.

Γνωρίζοντας για την ευελιξία του gnuplot, άρχισα να ψάχνω τον Παγκόσμιο Ιστό και βρήκα αρκετά κατάλληλα παραδείγματα σχετικά με το stackoverflow (Διπλός άξονας x σε οικόπεδο αράχνης με Gnuplot и Πώς να δημιουργήσετε ένα Spider Plot στο Gnuplot;) και github (gnuplot-radarchart). Έγιναν η αφετηρία.

Περαιτέρω, οι χειρισμοί μου με τις εντολές οδήγησαν στα εξής:

0) Απενεργοποίηση τα σύνορα

unset border

1) Δημιουργήστε 4 μηδενικές γραμμές - 2 κύριες και 2 πρόσθετες:

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

Λίγα λόγια για τις μηδενικές γραμμές τεκμηρίωση. Αυτή η λειτουργία σάς επιτρέπει να φέρετε τους άξονες στο κέντρο της εικόνας. Και χρειάζονται επιπλέον για να εμφανιστούν θετικά τσιμπούρια σε αυτά.

2) Ρυθμίστε την εμφάνιση των κροτώνων στους άξονες:

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            

Με τσιμπούρια στους άξονες υπάρχουν λίγο περισσότερες ρυθμίσεις.
axis - όπου θα βρίσκονται τα τσιμπούρια, στον άξονα ή (σύνορα - στα σύνορα).
Για άξονα x, που πηγαίνει προς τα δεξιά 0,.5,max. Ο πρώτος αριθμός είναι η έναρξη της αντίστροφης μέτρησης, ο δεύτερος είναι το βήμα, ο τρίτος είναι το τέλος της αντίστροφης μέτρησης. Για το πρώτο από 0, και για τα υπόλοιπα από 0.5, ώστε τα μηδενικά να μην παρεμβαίνουν στην προέλευση.

gnuplot 5.0. Spiderplot σε 4 άξονες κάντε το μόνοι σας
gnuplot 5.0. Spiderplot σε 4 άξονες κάντε το μόνοι σας

Ανάμειξη μηδενικών στο κέντρο συντεταγμένων.
Όλα τα διαστήματα *tics διαμορφώθηκε ως 0,.5,max
χωρίς offset 0.35 για xtics

προσαρμογή scale 0.5,0.25 mirror προσθέτει εγκοπές στον άξονα. Αν παίξετε με τους αριθμούς, το μέγεθός τους θα αλλάξει.
Εισάγω και μεταβλητές max, min, με τη βοήθεια του οποίου ελέγχω τα όρια των αξόνων του γραφήματος.
Πρόσθετες πληροφορίες σχετικά με τη ρύθμιση των τικ μπορείτε να βρείτε στην τεκμηρίωση της ενότητας Xtics.

3) Ρύθμιση εύρους αξόνων:

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

Να σημειωθεί εδώ ότι οι 2 άξονες ξεκινούν από min για μεγέθυνση και 2 άξονες - με max μειώνω.
Πρόσθετες πληροφορίες στην ενότητα Xrange.

4) Δώστε ονόματα στους άξονες και τοποθετήστε τους όμορφα:

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) Σχηματισμός των δεδομένων εισόδου
Κάθε γράφημα έχει 2 στήλες. Αριθμός γραμμής - αριθμός άξονα, πέμπτη γραμμή για το κλείσιμο του βρόχου. Μονή στήλη - συντεταγμένη x, ακόμη και - y. Λόγω του γεγονότος ότι όλα τα σημεία βρίσκονται στους άξονες, στη συνέχεια από το ζεύγος (x, y) το ένα είναι πάντα μηδέν.
Παρόλο που και οι 4 άξονες είναι θετικοί, ορισμένα δεδομένα μετακινούνται τεχνητά στο αρνητικό μισό επειδή βρίσκονται στους κύριους άξονες 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 #Дубликат первой точки

Αποτέλεσμα
gnuplot 5.0. Spiderplot σε 4 άξονες κάντε το μόνοι σας
Πλήρης κωδικός

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο