
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 (Byddaf yn gweithio gyda ffeil ychydig a bydd yn brydferth, meddyliais).

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 ( и ) a github (). Daethant yn fan cychwyn.
Ymhellach, arweiniodd fy nhriniaethau gyda'r gorchmynion at y canlynol:
0) Analluogi
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 . 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.


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 .
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 .
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

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
