GNUPLOT ÇİZİM
PROGRAMI
Hazırlayan: Hakan KUTUCU
GNUPLOT
•Görselleştirme, herhangi bir problemin sonuçlarını analiz etmek ve göstermek için veri işleme sonucunda yapılan önemli bir unsurdur.
•Taşınabilir bilimsel bir görselleştirme programıdır.
• Platform bagımsızdır çünkü basta UNIX, IBM OS/2, MS Windows, DOS, Macintosh,VMS, Atari olmak üzere bir çok plotformda onu çalıştırabilirsiniz.
GNUPLOT
• 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.
• Latex için grafikleri tex formatına da dönüştürebilmektedir.
GNUPLOT
• GnuPlot “case sensitive” bir programdır. (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.
GNUPLOT-Kurulum
• Gnuplot yazılımı ücretsiz ve açık kaynak kodlu bir programdır.
• http://www.gnuplot.info/ adresinden ücretsiz indirelebilir.
• Windows için uygun sürüm gp420win32.zip
• Programı çalıştırmak için herhangi bir kurulum prosedürü yoktur.
•“bin” adlı klasördeki “wgnuplot.exe” dosyası çift tıklanır.
• Gnuplot’un içinde tanımlı gelen, temel fonksiyonlar vardır. Örnegin sin(x) fonksiyonu bunlardan biridir. Eger bu fonksiyonun grafigini çizmek istersek verecegimiz komut en basit haliyle:
plot sin(x)
GNUPLOT ile Çizim Yapmak
• 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) ex 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
Tanımlı Bazı Fonksiyonlar
• Birden fazla çizim yapmak istiyorsak, fonksiyonlar birbirlerinden virgül isareti ile ayrılır.
•Örnegin log(x) ve sin(x) çizimi için yazılacak komut:
plot sin(x),log(x)
GNUPLOT ile Çizim Yapmak
• Fonksiyonun çizim aralığının otomatik olarak seçildigine dikkat edelim.
•Bunu istersek değiştirmek istersek, örnegin az önceki çizimi x ekseni üzerinde -5 ile 7 aralığında çizmek istersek, verecegimiz komut:
plot [-5:7] sin(x),log(x)
Eksenlerin Tanımlanması
•Aynı şekilde y-ekseninde de sınırlandırma yapabiliriz:
plot [-5:7][-2.5:0.5] sin(x),log(x)
Eksenlerin Tanımlanması
plot “veriler.txt”
• Bu komut "veriler.txt" adlı dosyanın içindeki iki sütunun ilkini x değerleri ikincisini de y değerleri olarak dikkate alır ve çizim yapar.
Dosyadan Veri Okumak
• Eğer veri dosyası içinde ikiden fazla sütun varsa, bu durumda hangi sütunlarla ilgilendiğimizi belirtmemiz gerekir.
•Aşağıdaki komutta, x değerlerinin birinci, y değerlerinin ise üçüncü sütunda olduğu belirtilmiştir.
plot "veriler.txt" using 1:3
Dosyadan Veri Okumak
• Bazen dosyadaki verileri dogrudan çizdirmek yerine, bunları bir işleme tabi tutup elde edeceğimiz sonuçlara göre çizim yapmak isteyebiliriz. Bu durumda sütunların degişken olarak anlaşılabilmesi için başlarına $ işareti yazılması gereklidir.
plot "veriler.txt" using ($1*5):(sin($3))
Dosyadan Veri Okumak
• Birden fazla çizim yapmak istenirse;
plot "veriler.txt" using 1:2 with lines,"veriler.txt"
using 1:3 with lines
Dosyadan Veri Okumak
plot "veriler.txt" using 1:2 with linesp ps 2 pt 5 lw 3
Dosyadan Veri Okumak
ps: pointsize pt: pointtype lw: linewidth
Desteklenen tüm renkler ve tüm çizim türlerini
görüntülemek için;
test
• x ve y eksenlerine etiket vermek için;
set xlabel “Zaman”
set ylabel “Uretim”
• Grafiği tekrar çizmek için;
replot
Başlık ve Eksen Etiketleri
set title “Yillik Uretim Grafigi"
replot
Grafiğe Başlık Ekleme
plot "veriler.txt" using 1:2 w l title
"Domates" ,"veriler.txt" using 1:3 w l title
"Patates"
Grafikteki Her Data Bloğuna
Etiket Eklemek
set zeroaxis
plot sin(x),log(x)
Eksenleri Çizdirmek
set zeroaxis
plot sin(x),log(x)
Etiketleri Kaldırmak
Set edilen etiketleri silmek için unset komutu kullanılır.
unset xlabel;unset ylabel;unset title
set grid;replot
Grid Ekleme
set xtics 1;replot
Eksenlerdeki Tikleri Artırmak
• Tüm çizimlerimizi su ana kadar bir pencere üzerinde görüntüledik.
• Bu pencere gnuplot’un çizim terminali olarak adlandırılır.
• İstersek çizimleri 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:
set terminal
Terminal Türleri
• Önceki komutlarda bizim kullandıgımız terminalin adı "windows"tur.
• Örnek: "veriler.txt" dosyasındaki sütunlar ile bir işlem yapıp, sonucu "rapor.eps" adlı
dosyaya kaydedelim.
Terminal Türleri
set term postscript
set output "rapor.eps"
plot "veriler.txt" using 1:($2*$3) w linesp pt 6
set term postscript 20 color set output "rapor.eps"
plot "veriler.txt" using 1:($2*$3) w linesp pt 6
Postscript Parametreleri
• 20 punta büyüklüğünü,
• color ise renkli olmasını belirtiyor.
set term postscript 20 color enhanced
Postscript Parametreleri-2
• “enhanced" seçenegi 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-2
Kullanım
Kullanım ÇıktıÇıktı a^xa^x aaxx
a_xa_x aaxx a@^b_c
a@^b_c aabbcc
Türkçe karakterler için
Örnek Kullanım
set term postscript 20 color enhanced set output “rapor.eps”
set title “Y{/=15I}ll{/=15I}k ~U{.8..}retim Grafi~g{.4\\~}i”
set xlabel “Zaman”
set ylabel “~U{.8..}retim”
replot
Postscript Parametreleri-2
Gif Olarak Kaydetmek
set term gif large
set output "rapor.gif"
plot "veriler.txt" using 1:($2*$3) w linesp pt 20
• Yaptığımız tüm ayarlar, gnuplot programı kapanınca eski haline dönecektir.
• Eger çizimlerin nasıl görünecegi ile ilgili çok miktarda değişiklik yaptıysak, bunları bir dosyaya kaydedip, sonraki çalışmada geri çağırmak ayarları eski haline getirir.
save “ayarlar.plt”
load “ayarlar.plt”
Dosya Kaydetme ve Çağırma
• Bir grafik üzerine birden fazla çizim yapmayı görmüstük.
• Gnuplot’ta ayrıca belirli sayıda grafik mozaik yapıda birleştirilebilmektedir.
• Bunun için "multiplot" özelligi aktif hale getirilmelidir.
set multiplot
Multiplot
• Bu komut verildikten sonra prompt yerinde artık
"gnuplot" degil "multiplot" ifadesi yazılır.
• Komuttan sonra açılan boş bir pencere açılacaktır. Bu pencereyi kapatmayınız.
• Bu moddan çıkmak istedigimiz zaman ise verecegimiz komut:
unset multiplot
Multiplot
set multiplot layout 2,2 title
“Grafikler"
• Bu komut sayfayı 2x2 lik bloklara böler. Her bloğa bir grafik çizilebilir.
• Set edilen ayarlar çizilecek tüm grakiler için geçerlidir.
set xlabel "X-ekseni"
set ylabel "Y-ekseni"
set title "Cizim -1"
plot 2*sin(x) notitle
Multiplot
• Set edilen ayarlar çizilecek tüm grakiler için geçerlidir.
• 2. grafiği çizmek için;
set title "Cizim-2"
multiplot> plot x**3 notitle
Multiplot
• 3. grafiği dosyadan veri okutarak çizdirelim.
set title "Cizim-3“
plot "veriler.txt" using 1:2 with linesp ps 2 pt 5 notitle
Multiplot
• 4. grafiği dosyadan veri okutarak çizdirelim.