gnuplo 5.0. Mae Spiderplot ar 4 echelin yn ei wneud eich hun

gnuplo 5.0. Mae Spiderplot ar 4 echelin yn ei wneud eich hun
Wrth weithio ar ddelweddu data ar gyfer erthygl, daeth yn angenrheidiol i gael 4 echelin gyda labeli positif ar bob un.

Fel gyda graffiau eraill yn yr erthygl, penderfynais ddefnyddio gnuplot. Yn gyntaf oll, edrychais ar y wefan swyddogol, lle mae llawer o enghreifftiau. Roeddwn i'n hapus iawn pan wnes i ddod o hyd i'r un iawn enghraifft (Byddaf yn gweithio gyda ffeil ychydig a bydd yn brydferth, meddyliais).
gnuplo 5.0. Mae Spiderplot ar 4 echelin yn ei wneud eich hun
Fe wnes i gopΓ―o'r cod yn gyflym a'i redeg. Rwy'n cael gwall. Rwy'n cyfrifo'r peth. Mae'n troi allan bod gen i hen gnuplot (Version 5.0 patchlevel 3 last modified 2016-02-21) ac ni all wneud hynny.

Gan wybod am hyblygrwydd gnuplot, dechreuais sgwrio'r We Fyd Eang a dod ar draws sawl enghraifft addas ar stackoverflow (Echel x dwbl ar lain corryn gyda Gnuplot ΠΈ Sut i Greu Plot Corryn yn Gnuplot?) a github (gnuplot-radarchart). Daethant yn fan cychwyn.

Ymhellach, arweiniodd fy nhriniaethau gyda'r gorchmynion at y canlynol:

0) Analluogi y ffiniau

unset border

1) Creu 4 llinell sero - 2 brif a 2 ychwanegol:

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

Ychydig eiriau am linellau sero i mewn dogfennaeth. Mae'r llawdriniaeth hon yn caniatΓ‘u ichi ddod Γ’'r echelinau i ganol y llun. Ac mae angen rhai ychwanegol i arddangos ticiau positif arnyn nhw.

2) Gosodwch arddangosfa trogod ar yr echelinau:

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            

Gyda trogod ar yr echelinau mae ychydig mwy o osodiadau.
axis - lle bydd y trogod yn cael eu lleoli, ar yr echelin neu (ffin - ar y ffin).
Ar gyfer echel x, sy'n mynd i'r dde 0,.5,max. Y rhif cyntaf yw dechrau'r cyfrif i lawr, yr ail yw'r cam, y trydydd yw diwedd y cyfrif i lawr. Am y cyntaf o 0, ac am y gweddill o 0.5, fel nad yw'r sero yn ymyrryd Γ’'r tarddiad.

gnuplo 5.0. Mae Spiderplot ar 4 echelin yn ei wneud eich hun
gnuplo 5.0. Mae Spiderplot ar 4 echelin yn ei wneud eich hun

Cymysgu sero yn y ganolfan gyfesuryn.
Pob ysbaid *tics ffurfweddu fel 0,.5,max
Heb offset 0.35 gyfer xtics

addasiad scale 0.5,0.25 mirror yn ychwanegu rhiciau i'r echelin. Os ydych chi'n chwarae gyda'r rhifau, bydd eu maint yn newid.
Rwyf hefyd yn nodi newidynnau max, min, gyda chymorth yr wyf yn rheoli ffiniau echelinau'r graff.
Ceir gwybodaeth ychwanegol am osod trogod yn y ddogfennaeth yn yr adran Xtics.

3) Sefydlu ystodau echelin:

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

Dylid nodi yma bod y 2 echel yn dechrau o min ar gyfer chwyddo a 2 echel - gyda max i leihau.
Gwybodaeth ychwanegol yn yr adran Xrange.

4) Rhowch enwau'r echelinau a'u gosod yn hyfryd:

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) Ffurfio'r data mewnbwn
Mae gan bob graff 2 golofn. Rhif llinell - rhif echelin, pumed llinell i gau'r ddolen. Colofn od - cydlynu x, hyd yn oed - y. Oherwydd y ffaith bod yr holl bwyntiau wedi'u lleoli ar yr echelinau, yna o'r pΓ’r (x, y) mae un bob amser yn sero.
Er bod pob un o'r 4 echelin yn bositif, mae peth data'n cael ei symud yn artiffisial i'r hanner negyddol oherwydd ei fod wedi'i leoli ar y prif echelinau 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 #Π”ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ

Canlyniad
gnuplo 5.0. Mae Spiderplot ar 4 echelin yn ei wneud eich hun
Cod llawn

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

Ffynhonnell: hab.com

Ychwanegu sylw