GNUPLOT ÇİZİM PROGRAMI İlkay TÜRK ÇAKIR SANAEM- TAEK HPFBO-Çukurova Üniversitesi
Taşınabilir bilimsel bir görselleştirme programıdır. Gnuplot fonksiyonların ve verilerin grafigini komut vererek çizen bir yazılımdır. Özellikle eps ve ps formatlarında görselleştirme yaptığı için Matematikçiler için idealdir. GENEL ÖZELLİKLER -I
Gnuplot büyük harflerle yazılan komutlar çalışmayacaktır. Komutlar birden fazla parametre içerebilirler. Bir satıra birden fazla komut yazılabilir. Komutlar noktalı virgül (;) ile ayrılmalıdır. GENEL ÖZELLİKLER -II
Gnuplot programı çalıştırmak için gnuplot komutu kullanılır.
abs(x) mutlak deger alır cos(x),sin(x),tan(x) cosh(x), sinh(x),tanh(x) acosh(x), asinh(x), atanh(x) ceil(x) x’den büyük en küçük tamsayıyı verir exp(x) e x isleminin sonucunu verir floor(x) x’den küçük en büyük tamsayıyı verir int(x) x’in tam kısmını verir log(x) dogal logaritma alır log10(x) 10 tabanına göre logaritma alır sqrt(x) x’in karekökünü alır Gnuplot İçinde Tanımlı Olan Bazı Fonksiyonlar
Örnegin sin(x) fonksiyonun grafiğini çizdirelim. GNUPLOT ile Çizim Yapmak plot sin(x) Fonksiyonun çizim aralığının otomatik olarak seçilmiştir.
Birden fazla fonksiyonu birarada çizelim. Örneğin: sin(x),cos(x) ve log(x) fonksiyonları olsun. GNUPLOT ile Çizim Yapmak-II plot sin(x),cos(x),log(x)
Grid Ekleme set grid
Eksenleri Çizdirmek set zeroaxis plot sin(x),cos(x),log(x)
Fonksiyonun çizim aralığını değiştirebiliriz. Örnegin sin(x) grafiğinin aralığını az önceki çizimi x ekseni üzerinde -50 ile 50 aralığında değiştirelim. Eksenlerin Tanımlanması plot [-50:50]sin(x)
y-ekseninde de istediğimiz sınırlamayı yapabiliriz. Eksenlerin Tanımlanması plot [-2:2][-2:2]sin(x)
Veri Okumak Örneğin "okul1.txt" adlı dosyanın içindeki iki sütundan birincisinin x değerlerini ve ikincisini de y değerlerini gözönüne alır. plot “okul1.txt”
Veri Okumak plot “okul1.txt” using 1:($2*10)plot “okul1.txt” using ($1*10):2
plot “okul3.txt” u 2:3 set style data lines Veri Okumak
plot “okul2.txt” okul2.txt Veri Okumak
ps: pointsize pt: pointtype lw: linewidth plot “okul.txt” using 1:2 with linesp ps 2 pt 5 lw 3
Desteklenen tüm renkler ve tüm çizim türlerini görüntülemek için; test
Eksenleri Etiketleme set xlabel 'Enine Momentum' set ylabel 'Diferensiyel Tesir Kesiti' replot NOT: Set edilen etiketleri silmek için unset komutu kullanılır. unset xlabel; unset ylabel; unset title
Grafikteki Her Veri Bloğuna Etiket Eklemek plot 'okul4.txt' using 1:2 w l title 'p1', 'okul4.txt' using 1:3 w l title 'E1'
Çizgileri Düzgünleştirmek plot “okul4.txt” using 1:2 smooth bezier w l title “p1”, \ “okul4.txt” using 1:3 smooth bezier w l title “E1”
Çizimlerimizi farklı türde dosyalar (terminaller) içine de yapabiliriz. Bu durumda terminali ve çıktıların kaydedileceği dosyanın adını belirtmemiz gerekir. Gnuplot’un destekledigi terminalleri görebilmek için: Terminal Türleri set terminal Örnek: "plot_1.txt" dosyasındaki sütunlar ile bir işlem yapıp, sonucu "plot_1.eps" adlı dosyaya kaydedelim. NOT: 20 punto büyüklüğünü, color ise renkli olmasını belirtiyor. set term postscript eps enh 20 color set output "plot_1.eps" set ylabel 'd{/Symbol=18s}/dp_T(pb/GeV)' set xlabel 'p_T(GeV)' set key top 50,6 plot "plot_1.txt" using (0+$0*2.5):1 w linesp ps 2 pt 1
Postscript Parametreleri “enhanced" seçeneği kullanıldıgı zaman biçimlendirilmiş yazım yapılabilir. Yani, alt/üst simgeler gibi çeşitli yazımlar gerçeklestirilebilir. Gnuplot yazılımında olan en büyük problem Türkçe karakterleri desteklemiyor olmasıdır. Bunu çözmek için ise bu "gelişmiş" yazım formatlamayı kullanabiliriz.
Postscript Parametreleri ebcebc exex e_x exex e^x ÇıktıKullanım Türkçe karakterler için
Örnek
Komutlarımızı bir dosyaya kaydedip, sonraki çalışmada geri çağırmak ayarları eski haline getirir. Dosya Kaydetme ve Çağırma save “sakla.txt” load “sakla.txt”
Gnuplot’ta ayrıca belirli sayıda grafik mozaik yapıda birleştirilebilmektedir. Bunun için “set multiplot" komutu kullanılır. Çoklugrafik set origin 0.1,0.1 set multiplot set size 0.4,0.4 set origin 0.1,0.1 plot sin(x) set size 0.4,0.4 set origin 0.5,0.5 plot cos(x) set size 0.4,0.4 set origin 0.5,0.1 plot tan(x) unset multiplot
3 Boyutlu grafik splot x**2+y set xlabel “x” set ylabel “y” set zlabel “z”
Eğriye Uydurma Daha çok parametre daha iyi “fit” f1(x) = a1*tanh(x/b1) a1 = 300; b1 = 0.005; fit f1(x) 'fit_1.txt' using 1:2 via a1,b1 yeni dğerleri kullanabiliriz plot f1(x) w l lw 3, "fit_1.txt" using 1:2 w p ps 3 fit_1.txt verileri:
Fit parametrelerinin belirlenmesi
Gnuplot sayfaları
ÖDEV sinx/x grafiğinin [-10:10] aralığındaki grafiğini çiziniz, yatay eksene “x” ve düsey eksene “sinx/x” yazdırınız, grid çizgileri kullanınız. Grafiğin sonucu.eps dosyası olarak elde ediniz. sinx/x grafiğinin [-10:10] aralığındaki grafiğini çiziniz, yatay eksene “x” ve düsey eksene “sinx/x” yazdırınız, grid çizgileri kullanınız. Grafiğin sonucu.eps dosyası olarak elde ediniz.