Strādājot pie raksta datu vizualizācijas, radās nepieciešamība uz visām 4 asis ar pozitīvām etiķetēm.
Tāpat kā citas rakstā esošās diagrammas, es nolēmu izmantot gnuplot. Pirmkārt, apskatīju oficiālo vietni, kur ir daudz piemēru. Es biju ļoti priecīgs, kad atradu īsto
Es ātri nokopēju kodu un palaidu to. Es saņemu kļūdu. Es to izdomāju. Izrādījās, ka man ir vecs gnuplots (Version 5.0 patchlevel 3 last modified 2016-02-21
), un viņš to nevar izdarīt.
Zinot par gnuplot elastību, es sāku pārlūkot globālo tīmekli un atradu vairākus piemērotus piemērus par stackoverflow (
Turklāt manas manipulācijas ar komandām noveda pie sekojošā:
0) Atspējot
unset border
1) Izveidojiet 4 nulles līnijas — 2 galvenās un 2 papildu:
set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis
Daži vārdi par nulles rindiņām
2) Iestatiet ērču rādīšanu uz asīm:
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
Ar ērcēm uz asīm ir nedaudz vairāk iestatījumu.
axis
- kur atradīsies ērces, uz ass vai (robeža - uz robežas).
Par asi x
, kas iet pa labi 0,.5,max
. Pirmais cipars ir atpakaļskaitīšanas sākums, otrais ir solis, trešais ir atpakaļskaitīšanas beigas. Pirmajam no plkst 0
, un par pārējo no plkst 0.5
, lai nulles netraucētu izcelsmei.
Nulles sajaukšana koordinātu centrā.
Visi intervāli *tics
konfigurēts kā 0,.5,max
bez offset 0.35
par xtics
koriģēšana scale 0.5,0.25 mirror
pievieno iecirtumus asij. Ja spēlēsi ar cipariem, mainīsies to lielums.
Es arī ievadu mainīgos max, min
, ar kuras palīdzību es kontrolēju grafa asu robežas.
Papildu informāciju par ērču iestatīšanu var atrast dokumentācijā sadaļā
3) Iestatiet asu diapazonus:
set xrange [ min : max ]
set yrange [ min : max ]
set x2range [ max : min ]
set y2range [ max : min ]
Šeit jāatzīmē, ka 2 asis sākas no min
palielinājumam un 2 asīm - ar max
Samazināt.
Papildus informācija sadaļā
4) Piešķiriet asīm nosaukumus un novietojiet tās skaisti:
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) Ievaddatu veidošana
Katrā diagrammā ir 2 kolonnas. Rindas numurs - ass numurs, piektā rinda, lai aizvērtu cilpu. Nepāra kolonna - koordināte x
, pat - y
. Sakarā ar to, ka visi punkti atrodas uz asīm, tad no pāra (x, y)
viens vienmēr ir nulle.
Pat ja visas 4 asis ir pozitīvas, daži dati tiek mākslīgi pārvietoti uz negatīvo pusi, jo tie atrodas uz galvenajām asīm 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 #Дубликат первой точки
Piedzīvojiet efektīvu rezultātu spēku
Pilns kods
#!/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
Avots: www.habr.com