öncelikle paket yöneticisinden “gnuplot”u aratıp, kuruyoruz. artık kullanıma hazır etkileşimli bir komut satırı bizi bekliyor. python diliyle ilgilenmiş olanlar için, bu etkileşimli komut satırı tanıdık gelecektir. evet hemen bir konsol açmak için sabırsızlanıyoruz. konsolu açıp, gnuplot yazıp enter'liyoruz.
evet gnuplot komut satırına giriş yapmış durumdayız. kodlarımızı buradan gireceğiz. ve girdiğimiz komutların ardından ekrana grafiğimiz yeni bir pencere içerisinde gelecek. uygulamadan çıkmak içinse ctrl+d tuş kombinasyonunu kullanabiliriz. bu arada, programımızın özellikleri, yetenekleri saymakla bitmeyeceği için ben sadece bir parmak bal çalma çabası içerisinde olacağım. vereceğim örnekleri ve kendi türeteceğiniz örnekleri müteaddit defalar deneyerek eğlenerek öğreneceğinizi umuyorum.
ilk uygulama için sabırsızlanıyoruz. “hello world” yazmayacağız. onun yerine, basitçe bir grafik çizdirelim. mesela, sin(x)*cos(x)'in grafiği. plot sin(x)*cos(x) yazıp enter'lamamız yeterli.
grafiğimizin gösterileceği alanı sınırlamak istersek plot [-pi/2:pi/2] [-pi/2:pi/2] sin(x)*cos(x) şeklinde sınırlandırma da yapabiliriz. yani grafiğimizin sadece bizim belirlediğimiz bölgesi görüntüleniyor ve zoom'lanıyor gördüğünüz gibi. birinci [] ifadesinin içerisine x ekseninin başlangıç ve bitiş sınırları araya : konularak yazılıyor. ikinci [] için de aynı değerleri y ekseni için giriyoruz. bu ilk uygulamamızda plot komutu ile çizdirdik grafiği. plot, gnuplot'un 2 boyutta çalışan çizdirme komutudur.
ilk örneğimizde tek değişkenli bir grafik çizdirdik. şimdi çok parametreli bir grafik çizdirelim. plot x**2+5*x+4, x**3-7, 15*x+5. ifademizi inceleyelim. plot komutunun ardından, virgüllerle ayırarak istediğimiz sayıda fonksiyon yazarak bunların grafiğini çizdirebiliyoruz. gene bu kodumuzda da sınırlar belirtebilirdik. ancak bu konuyu önceki örnekte öğrendiğimiz için gerek görmedim. bu arada ** sembolümün ^ yani kuvvet anlamına geldiğini hatırlatalım. (2**3=8, x**2= x kare)
şimdi fantezi boyutumuzu bir basamak daha ilerletiyoruz ve üç boyutlu grafiklere geçiyoruz. 3 boyutlu grafikleri çizdirmek için ise plot'un yerine splot komutunu kullanacağız. ve artık x'in yanında bir de y değişkenimiz oldu. yani iki değişkenden gelen değerler işlenebilecek. ve tabi ki az önceki örneğimizde yaptığımız gibi virgüllerle ayırarak birden çok fonksiyonu gösterebiliyoruz.
x*y gibi basit bir ifadeyle başlayalım 3. boyuta isterseniz. splot x*y. ve artık 3. boyuta geçtiğimizi anlamak istiyoruz. bunun için fareyi grafik alanına basılı tutarak çevirelim. veya ok tuşlarını da kullanabilirsiniz. hmm, işte şimdi biraz eğlenceli olmaya başladı. o zaman tadında bırakalım.
bu yazımda, çok sınırlı özellikleri anlatabildim ve bu programla yapabileceklerimizin yanında bunlar hiç bir şey. devamı sizin ellerinizde. http://gnuplot.sourceforge.net/demo_4.3/ bu örnekleri inceleyerek, özgür bir yazılımın ne kadar farklı amaçlara uygun olarak kullanılabileceğini görebilirsiniz.
gnuplot'un münevver geliştiricilerine ve siz müşfik okurlara teşekkür ediyorum. bu arada, bu yazıyı hazırlarken, aldığım ekran görüntülerini küçültmek için kısacık bir python programcığı kullandım. ve bu vesileyle bir kez daha python'a sevgilerimi sunuyorum. kodu da yazayım şuracığa.
import glob
import Image
for infile in glob.glob("*.png"):
im = Image.open(infile)
im.thumbnail((256,256), Image.ANTIALIAS)
if infile[0:2] != "t_":
im.save("t_" + infile, "PNG")
gplot'un resmi sitesi http://www.gnuplot.info 'dan çok çeşitli örnekleri inceleyebilir, farklı tip grafik çeşitleri oluşturmayı öğrenebilir, sağlam tutorial'lerini indirebilir ve programa ek özellikler katan 3. parti eklentilere ulaşabilirsiniz. size bir kodla veda ediyorum. bunu kopyala, yapıştır ile gnuplot komut satırına yapıştırıp çalıştırabilirsiniz.
çizim dolu günler.
set dummy u,v
set parametric
set urange [ -pi : pi ] noreverse nowriteback
set vrange [ -pi : pi ] noreverse nowriteback
splot cos(u)+.5*cos(u)*cos(v),sin(u)+.5*sin(u)*cos(v),.5*sin(v) with lines, 1+cos(u)+.5*cos(u)*cos(v),.5*sin(v),sin(u)+.5*sin(u)*cos(v) with lines
Hiç yorum yok:
Yorum Gönder