Transcript gnuplot
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
çalıştırabilirsiniz.
bir
çok
plotformda
onu
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
dönüştürebilmektedir.
tex
formatına
da
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 ile Çizim Yapmak
• 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)
Tanımlı Bazı Fonksiyonlar
• 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
GNUPLOT ile Çizim Yapmak
• 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)
Eksenlerin Tanımlanması
• 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)
Dosyadan Veri Okumak
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
belirtilmiştir.
plot "veriler.txt" using 1:3
olduğu
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
ps: pointsize
pt: pointtype
lw: linewidth
Desteklenen tüm
renkler ve tüm
çizim türlerini
görüntülemek için;
test
Başlık ve Eksen Etiketleri
• x ve y eksenlerine etiket vermek için;
set xlabel “Zaman”
set ylabel “Uretim”
• Grafiği tekrar çizmek için;
replot
Grafiğe Başlık Ekleme
set title “Yillik Uretim Grafigi"
replot
Grafikteki Her Data Bloğuna
Etiket Eklemek
plot "veriler.txt" using 1:2 w l title "Domates"
,"veriler.txt" using 1:3 w l title "Patates"
Eksenleri Çizdirmek
set zeroaxis
plot sin(x),log(x)
Etiketleri Kaldırmak
set zeroaxis
plot sin(x),log(x)
Set edilen etiketleri silmek için unset komutu kullanılır.
unset xlabel;unset ylabel;unset title
Grid Ekleme
set grid;replot
Eksenlerdeki Tikleri Artırmak
set xtics 1;replot
Terminal Türleri
• 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.
set term postscript
set output "rapor.eps"
plot "veriler.txt" using 1:($2*$3) w linesp pt 6
Postscript Parametreleri
set term postscript 20 color
set output "rapor.eps"
plot "veriler.txt" using 1:($2*$3) w linesp pt 6
• 20 punta büyüklüğünü,
• color ise renkli olmasını belirtiyor.
Postscript Parametreleri-2
set term postscript 20 color enhanced
• “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
Çıktı
a^x
ax
a_x
ax
a@^b_c
abc
Türkçe karakterler için
Örnek Kullanım
Postscript Parametreleri-2
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
Gif Olarak Kaydetmek
set term gif large
set output "rapor.gif"
plot "veriler.txt" using 1:($2*$3) w linesp pt 20
Dosya Kaydetme ve Çağırma
• 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”
Multiplot
• 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.
set title "Cizim-4“
plot "veriler.txt" using 1:2 with linesp pt 5
title "1.sutun", "veriler.txt" using 1:3 with
linesp pt 9 title "2.sutun"