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