Gnuplot 5.0. DIY Spiderplot sa 4 na axis

Gnuplot 5.0. DIY Spiderplot sa 4 na axis
Kapag nagtatrabaho sa visualization ng data para sa isang artikulo, naging kinakailangan na magkaroon ng 4 na axes na may mga positibong label sa lahat.

Tulad ng iba pang mga graph sa artikulo, nagpasya akong gamitin gnplot. Una sa lahat, tiningnan ko ang opisyal na website, kung saan maraming mga halimbawa. Tuwang-tuwa ako nang mahanap ko ang tama halimbawa (Magtatrabaho ako nang kaunti sa isang file at ito ay magiging maganda, naisip ko).
Gnuplot 5.0. DIY Spiderplot sa 4 na axis
Mabilis kong kinopya ang code at pinatakbo ito. Nakakakuha ako ng error. Pinag-iisipan ko na. Ito pala ay mayroon akong isang lumang gnuplot (Version 5.0 patchlevel 3 last modified 2016-02-21) at hindi niya magagawa iyon.

Dahil alam ko ang flexibility ng gnuplot, sinimulan kong saliksikin ang World Wide Web at nakatagpo ako ng ilang angkop na halimbawa sa stackoverflow (Dobleng x-axis sa isang spider plot na may Gnuplot ΠΈ Paano Gumawa ng Spider Plot sa Gnuplot?) at github (gnuplot-radarcharart). Sila ang naging panimulang punto.

Dagdag pa, ang aking mga pagmamanipula sa mga utos ay humantong sa mga sumusunod:

0) Huwag paganahin ang mga hangganan

unset border

1) Lumikha ng 4 na zero na linya - 2 pangunahing at 2 karagdagang:

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

Ilang salita tungkol sa zero lines in dokumentasyon. Ang operasyong ito ay nagpapahintulot sa iyo na dalhin ang mga palakol sa gitna ng larawan. At ang mga karagdagang ay kinakailangan upang magpakita ng mga positibong marka sa kanila.

2) I-set up ang pagpapakita ng mga tik sa mga palakol:

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            

Sa mga ticks sa axes mayroong kaunti pang mga setting.
axis - kung saan matatagpuan ang mga ticks, sa axis o (hangganan - sa hangganan).
Para sa axis x, na papunta sa kanan 0,.5,max. Ang unang numero ay ang simula ng countdown, ang pangalawa ay ang hakbang, ang pangatlo ay ang pagtatapos ng countdown. Para sa unang mula sa 0, at para sa iba mula sa 0.5, upang ang mga zero ay hindi makagambala sa pinagmulan.

Gnuplot 5.0. DIY Spiderplot sa 4 na axis
Gnuplot 5.0. DIY Spiderplot sa 4 na axis

Paghahalo ng mga zero sa coordinate center.
Lahat ng agwat *tics naka-configure bilang 0,.5,max
Π‘Π΅Π· offset 0.35 para sa xtics

pag-aayos scale 0.5,0.25 mirror nagdaragdag ng mga bingaw sa axis. Kung laruin mo ang mga numero, magbabago ang laki nito.
Naglalagay din ako ng mga variable max, min, sa tulong kung saan kinokontrol ko ang mga hangganan ng mga graph axes.
Ang karagdagang impormasyon sa pagtatakda ng mga tik ay matatagpuan sa dokumentasyon sa seksyon Xtics.

3) I-set up ang mga saklaw ng axis:

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

Dapat pansinin dito na ang 2 axes ay nagsisimula sa min para sa magnification at 2 axes - may max upang mabawasan.
Karagdagang impormasyon sa seksyon Xrange.

4) Bigyan ng mga pangalan ang mga palakol at ilagay ang mga ito nang maganda:

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) Pagbubuo ng input data
Ang bawat graph ay may 2 column. Numero ng linya - numero ng axis, ikalimang linya upang isara ang loop. Kakaibang hanay - coordinate x, kahit - y. Dahil sa ang katunayan na ang lahat ng mga punto ay matatagpuan sa mga palakol, pagkatapos ay mula sa pares (x, y) ang isa ay palaging zero.
Kahit na ang lahat ng 4 na ax ay positibo, ang ilang data ay artipisyal na inilipat sa negatibong kalahati dahil ito ay matatagpuan sa mga pangunahing axes 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 #Π”ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ

Resulta
Gnuplot 5.0. DIY Spiderplot sa 4 na axis
Buong code

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

Pinagmulan: www.habr.com

Magdagdag ng komento