När man arbetade med datavisualisering för en artikel blev det nödvändigt att ha 4 axlar med positiva etiketter på alla.
Som med andra grafer i artikeln bestämde jag mig för att använda gnuplot. Först och främst tittade jag på den officiella webbplatsen, där det finns många exempel. Jag blev väldigt glad när jag hittade rätt
Jag kopierade snabbt koden och körde den. Jag får ett felmeddelande. Jag klurar på det. Det visade sig att jag har en gammal gnuplot (Version 5.0 patchlevel 3 last modified 2016-02-21
) och det kan han inte göra.
När jag visste om flexibiliteten med gnuplot började jag leta igenom World Wide Web och hittade flera lämpliga exempel på stackoverflow (
Vidare ledde mina manipulationer med kommandona till följande:
0) Inaktivera
unset border
1) Skapa 4 nollrader - 2 huvudlinjer och 2 ytterligare:
set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis
Några ord om noll linjer in
2) Ställ in visningen av fästingar på axlarna:
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
Med fästingar på axlarna finns det lite fler inställningar.
axis
- var fästingarna kommer att placeras, på axeln eller (gränsen - på gränsen).
För axel x
, som går till höger 0,.5,max
. Den första siffran är början på nedräkningen, den andra är steget, den tredje är slutet på nedräkningen. För den första från 0
, och för resten från 0.5
, så att nollorna inte stör origo.
Blanda nollor vid koordinatcentrum.
Alla intervaller *tics
konfigurerad som 0,.5,max
utan offset 0.35
för xtics
justering scale 0.5,0.25 mirror
lägger till skåror på axeln. Om du spelar med siffrorna kommer deras storlek att ändras.
Jag anger även variabler max, min
, med vars hjälp jag styr gränserna för grafaxlarna.
Ytterligare information om att sätta fästingar finns i dokumentationen i avsnittet
3) Ställ in axelområden:
set xrange [ min : max ]
set yrange [ min : max ]
set x2range [ max : min ]
set y2range [ max : min ]
Det bör noteras här att de 2 axlarna utgår från min
för förstoring och 2 axlar - med max
att minska.
Ytterligare information i avsnittet
4) Ge yxorna namn och placera dem vackert:
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) Bildning av indata
Varje graf har 2 kolumner. Linjenummer - axelnummer, femte raden för att stänga slingan. Udda kolumn - koordinat x
, även - y
. På grund av det faktum att alla punkter är belägna på axlarna, då från paret (x, y)
ett är alltid noll.
Även om alla fyra axlarna är positiva, flyttas vissa data på konstgjord väg till den negativa halvan eftersom de är placerade på huvudaxlarna 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 #Дубликат первой точки
Resultat
Fullständig kod
#!/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
Källa: will.com