Gnuplot 5.0. 4 eksende DIY Spiderplot

Gnuplot 5.0. 4 eksende DIY Spiderplot
Bir makale için veri görselleştirme üzerinde çalışırken, hepsinde pozitif etiketler bulunan 4 eksene sahip olmak gerekli hale geldi.

Makaledeki diğer grafiklerde olduğu gibi, kullanmaya karar verdim. gnuplot. Öncelikle birçok örneğin bulunduğu resmi sitesine baktım. Doğru olanı bulduğumda çok mutlu oldum örnek (Bir dosya üzerinde biraz çalışacağım ve çok güzel olacağını düşündüm).
Gnuplot 5.0. 4 eksende DIY Spiderplot
Kodu hızlıca kopyalayıp çalıştırdım. Bir hata alıyorum. Bunu çözmeye çalışıyorum. Eski bir gnuplot'um olduğu ortaya çıktı (Version 5.0 patchlevel 3 last modified 2016-02-21) ve bunu yapamaz.

Gnuplot'un esnekliğini bildiğim için World Wide Web'i araştırmaya başladım ve stackoverflow'ta birkaç uygun örnekle karşılaştım (Gnuplot ile örümcek grafiğinde çift x ekseni и Gnuplot'ta Örümcek Planı Nasıl Oluşturulur?) ve github (gnuplot-radarchart). Başlangıç ​​noktası oldular.

Ayrıca komutlarla yaptığım manipülasyonlar aşağıdakilere yol açtı:

0) Devre Dışı Bırak sınırları

unset border

1) 4 sıfır çizgi oluşturun - 2 ana ve 2 ek:

set xzeroaxis
set yzeroaxis
set x2zeroaxis
set y2zeroaxis

Sıfır satır hakkında birkaç kelime belgeleme. Bu işlem eksenleri resmin merkezine getirmenizi sağlar. Ve üzerlerinde olumlu işaretler görüntülemek için ek işaretlere ihtiyaç vardır.

2) Eksenler üzerindeki işaretlerin gösterimini ayarlayın:

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            

Eksenlerdeki işaretler ile biraz daha fazla ayar vardır.
axis - onay işaretlerinin yerleştirileceği yer, eksen üzerinde veya (kenarlık - sınırda).
Eksen için x, sağa giden 0,.5,max. İlk sayı geri sayımın başlangıcını, ikincisi adımı, üçüncüsü ise geri sayımın bitişini gösterir. İlki için 0ve geri kalanı için 0.5böylece sıfırlar orijini etkilemez.

Gnuplot 5.0. 4 eksende DIY Spiderplot
Gnuplot 5.0. 4 eksende DIY Spiderplot

Sıfırları koordinat merkezinde karıştırmak.
Tüm aralıklar *tics olarak yapılandırılmış 0,.5,max
Olmadan offset 0.35 için xtics

Ayar scale 0.5,0.25 mirror eksene çentikler ekler. Rakamlarla oynarsanız boyutları değişecektir.
Ayrıca değişkenleri de giriyorum max, minyardımıyla grafik eksenlerinin sınırlarını kontrol ediyorum.
Onay işaretlerinin ayarlanmasıyla ilgili ek bilgi, bölümdeki belgelerde bulunabilir. Xtics.

3) Eksen aralıklarını ayarlayın:

set xrange  [ min : max ] 
set yrange  [ min : max ]
set x2range [ max : min ]
set y2range [ max : min ]

Burada 2 eksenin başladığına dikkat edilmelidir. min büyütme ve 2 eksen için - ile max azaltmak için.
Bölümdeki ek bilgiler Xrange.

4) Baltalara isim verin ve onları güzelce yerleştirin:

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) Giriş verilerinin oluşturulması
Her grafiğin 2 sütunu vardır. Satır numarası - eksen numarası, döngüyü kapatmak için beşinci satır. Tek sütun - koordinat x, eşit - y. Tüm noktaların eksenlerde bulunması nedeniyle çiftten (x, y) bir her zaman sıfırdır.
Her ne kadar 4 eksen de pozitif olsa da bazı veriler ana eksenlerde yer aldığı için yapay olarak negatif yarıya taşınıyor. 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 #Дубликат первой точки

sonuç
Gnuplot 5.0. 4 eksende DIY Spiderplot
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

Kaynak: habr.com

Yorum ekle