gnuplot 5.0. Spiderplot pada 4 sumbu melakukannya sendiri

gnuplot 5.0. Spiderplot pada 4 sumbu melakukannya sendiri
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 contoh (Saya akan mengerjakan sedikit file dan itu akan menjadi indah, pikir saya).
gnuplot 5.0. Spiderplot pada 4 sumbu melakukannya sendiri
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 (Sumbu x ganda pada plot laba-laba dengan Gnuplot ΠΈ Bagaimana Cara Membuat Plot Laba-laba di Gnuplot?) dan github (gnuplot-radarchart). Mereka menjadi titik awal.

Selanjutnya, manipulasi saya dengan perintah menghasilkan hal berikut:

0) Nonaktifkan perbatasan

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 dokumentasi. Operasi ini memungkinkan Anda membawa sumbu ke tengah gambar. Dan diperlukan tambahan untuk menampilkan tanda positif pada mereka.

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.

gnuplot 5.0. Spiderplot pada 4 sumbu melakukannya sendiri
gnuplot 5.0. Spiderplot pada 4 sumbu melakukannya sendiri

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 Xtik.

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 rentang X.

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
gnuplot 5.0. Spiderplot pada 4 sumbu melakukannya sendiri
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

Tambah komentar