Bir məqalə üçün məlumatların vizuallaşdırılması üzərində işləyərkən, hamısında müsbət etiketləri olan 4 oxun olması zəruri oldu.
Məqalədəki digər qrafiklərdə olduğu kimi, mən də istifadə etməyə qərar verdim gnuplot. İlk öncə rəsmi internet saytına baxdım, orada çoxlu nümunələr var. Doğru olanı tapanda çox sevindim
Tez kodu kopyaladım və işə saldım. Mən səhv alıram. Mən başa düşürəm. Məlum oldu ki, mənim köhnə gnuplotum var (Version 5.0 patchlevel 3 last modified 2016-02-21
) və o bunu edə bilməz.
Gnuplotun çevikliyini bildiyim üçün mən Ümumdünya Şəbəkəsini araşdırmağa başladım və stackoverflow-da bir neçə uyğun nümunə ilə rastlaşdım (
Bundan əlavə, əmrlərlə etdiyim manipulyasiyalar aşağıdakılara səbəb oldu:
0) Deaktiv edin
unset border
1) 4 sıfır sətir yaradın - 2 əsas və 2 əlavə:
set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis
Sıfır sətirlər haqqında bir neçə kəlmə
2) Baltalarda gənələrin göstərilməsini qurun:
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
Baltalardakı gənələrlə bir az daha çox parametrlər var.
axis
- gənələrin yerləşəcəyi yer, oxda və ya (sərhəddə - sərhəddə).
Ox üçün x
, sağa doğru gedir 0,.5,max
. Birinci rəqəm geri sayımın başlanğıcıdır, ikincisi addımdır, üçüncüsü geri sayımın sonudur. İlk üçün 0
, qalanları üçün isə 0.5
, sıfırların mənşəyə mane olmaması üçün.
Koordinat mərkəzində sıfırların qarışdırılması.
Bütün intervallar *tics
kimi konfiqurasiya edilmişdir 0,.5,max
Olmadan offset 0.35
uğrunda xtics
nizamlama scale 0.5,0.25 mirror
oxa çentiklər əlavə edir. Rəqəmlərlə oynasanız, onların ölçüsü dəyişəcək.
Mən də dəyişənləri daxil edirəm max, min
, onun köməyi ilə qrafik oxlarının sərhədlərini idarə edirəm.
Gənələrin qoyulması ilə bağlı əlavə məlumatı bölmədəki sənədlərdə tapa bilərsiniz
3) Ox diapazonlarını qurun:
set xrange [ min : max ]
set yrange [ min : max ]
set x2range [ max : min ]
set y2range [ max : min ]
Burada qeyd etmək lazımdır ki, 2 oxdan başlayır min
böyütmə və 2 ox üçün - ilə max
azaltmaq.
Bölmədə əlavə məlumat
4) Baltaların adlarını verin və onları gözəl yerləşdirin:
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) Daxil olan məlumatların formalaşdırılması
Hər bir qrafikdə 2 sütun var. Sətir nömrəsi - ox nömrəsi, döngəni bağlamaq üçün beşinci sətir. Tək sütun - koordinat x
, hətta - y
. Bütün nöqtələrin baltalarda, sonra cütdən yerləşdiyinə görə (x, y)
biri həmişə sıfırdır.
Bütün 4 oxun müsbət olmasına baxmayaraq, bəzi məlumatlar əsas oxlarda yerləşdiyi üçün süni şəkildə mənfi yarıya köçürülür. 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 #Дубликат первой точки
Nəticə
Tam 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
Mənbə: www.habr.com