Saat mengerjakan visualisasi data untuk sebuah artikel, semuanya perlu memiliki 4 sumbu dengan label positif.
Seperti grafik lain dalam artikel ini, saya memutuskan untuk menggunakan gnuplot.dll. Pertama-tama, saya melihat situs resminya, di mana terdapat banyak contoh. Saya sangat senang ketika saya menemukan yang tepat
Saya segera menyalin kode dan menjalankannya. Saya mendapatkan kesalahan. Saya sedang mencari tahu. Ternyata saya punya gnuplot lama (Version 5.0 patchlevel 3 last modified 2016-02-21
) dan dia tidak bisa melakukan itu.
Mengetahui tentang fleksibilitas gnuplot, saya mulai menjelajahi World Wide Web dan menemukan beberapa contoh yang sesuai tentang stackoverflow (
Selanjutnya, manipulasi saya dengan perintah menghasilkan hal berikut:
0) Nonaktifkan
unset border
1) Buat 4 garis nol - 2 garis utama dan 2 garis tambahan:
set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis
Beberapa kata tentang garis nol masuk
2) Atur tampilan tanda centang pada sumbu:
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
Dengan tanda centang pada sumbu, ada lebih banyak pengaturan.
axis
- di mana tanda centang akan ditempatkan, pada sumbu atau (perbatasan - di perbatasan).
Untuk sumbu x
, yang mengarah ke kanan 0,.5,max
. Angka pertama adalah awal hitungan mundur, angka kedua adalah langkah, dan angka ketiga adalah akhir hitungan mundur. Untuk yang pertama dari 0
, dan sisanya dari 0.5
, agar angka nol tidak mengganggu titik asal.
Mencampur angka nol di pusat koordinat.
Semua interval *tics
dikonfigurasi sebagai 0,.5,max
Tanpa offset 0.35
untuk xtics
pengaturan scale 0.5,0.25 mirror
menambahkan takik pada sumbu. Jika Anda bermain-main dengan angka, ukurannya akan berubah.
Saya juga memasukkan variabel max, min
, yang dengannya saya mengontrol batas sumbu grafik.
Informasi tambahan tentang pengaturan centang dapat ditemukan di dokumentasi di bagian tersebut
3) Atur rentang sumbu:
set xrange [ min : max ]
set yrange [ min : max ]
set x2range [ max : min ]
set y2range [ max : min ]
Perlu dicatat di sini bahwa 2 sumbu dimulai dari min
untuk pembesaran dan 2 sumbu - dengan max
untuk mengurangi.
Informasi tambahan di bagian ini
4) Beri nama sumbu dan letakkan dengan indah:
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) Membentuk data masukan
Setiap grafik memiliki 2 kolom. Nomor baris - nomor sumbu, baris kelima untuk menutup loop. Kolom ganjil - koordinat x
, bahkan - y
. Karena kenyataan bahwa semua titik terletak pada sumbu, kemudian berpasangan (x, y)
satu selalu nol.
Meskipun keempat sumbunya positif, beberapa data dipindahkan secara artifisial ke separuh negatif karena terletak di sumbu utama 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 #ΠΡΠ±Π»ΠΈΠΊΠ°Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΎΡΠΊΠΈ
Hasil
Kode lengkap
#!/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
Sumber: www.habr.com