Giriş: MATLAB ile Görselleştirmenin Gücü
MATLAB, mühendislik, bilim ve finans gibi pek çok alanda veri analizi ve algoritmik geliştirme için güçlü bir platform sunar. Bu platformun en temel ve etkili özelliklerinden biri de, karmaşık verileri anlaşılır ve estetik bir şekilde görselleştirebilme yeteneğidir. İster basit bir fonksiyonun 2 boyutlu grafiğini çiziyor olun, isterse çok değişkenli bir denklemin 3 boyutlu yüzeyini görselleştiriyor olun, MATLAB size ihtiyacınız olan tüm araçları sağlar. Bu rehberde, MATLAB'in 2D ve 3D grafik çizim yeteneklerini baştan sona inceleyecek, temel komutlardan gelişmiş özelleştirmelere kadar birçok konuya değineceğiz. Amacımız, MATLAB'de etkili ve bilgilendirici grafikler oluşturmanız için size kapsamlı bir yol haritası sunmaktır. Veri görselleştirme, sayısal verilerden anlamlı içgörüler çıkarmak için kritik bir adımdır ve MATLAB, bu süreci kolaylaştıran kapsamlı bir araç setine sahiptir. Bu rehber, hem yeni başlayanlar hem de mevcut becerilerini geliştirmek isteyen deneyimli kullanıcılar için pratik bilgiler ve uygulanabilir örnekler sunmaktadır.
Bölüm 1: Temel 2D Grafik Çizimi
2D grafikler, MATLAB'deki görselleştirmenin temelini oluşturur ve en sık kullanılan fonksiyon
fonksiyonudur. Bu fonksiyon, verilen veri noktalarını birleştirerek çizgi grafikleri oluşturur ve bir dizi farklı parametre ile özelleştirilebilir.
1.1. plot Fonksiyonu ve Temelleri
komutu, x ve y vektörlerini kullanarak bir çizgi grafiği çizer. x değerleri yatay ekseni, y değerleri dikey ekseni temsil eder. Örneğin, bir sinüs dalgası çizelim:
Bu kod, 0'dan 2π'ye kadar sinüs fonksiyonunun düzenli aralıklarla çizilmiş bir grafiğini oluşturur. `xlabel`, `ylabel` ve `title` komutları grafiğin anlaşılırlığını artırır.
1.2. Grafik Özelleştirme: Renk, Çizgi Stili ve İşaretçiler
fonksiyonu, çizginin rengini, stilini ve veri noktalarının işaretçilerini ayarlamanıza olanak tanır. Bu özellikler, genellikle üçüncü bir argüman olarak bir karakter dizisiyle belirtilir. Ayrıca, `LineWidth` ve `MarkerSize` gibi özellik-değer çiftleri ile daha detaylı özelleştirmeler yapabilirsiniz.
Örnek bir kullanım ve aynı eksen üzerinde birden fazla grafik çizme:
Bu örnekte, `xlabel`, `ylabel`, `title`, `legend` ve `grid on` komutlarının grafiklerin okunabilirliğini nasıl artırdığını görebilirsiniz. `hold on` ve `hold off` ise aynı eksen üzerinde birden fazla çizgi çizmek için kritik öneme sahiptir. `Location` parametresi ile lejantın konumunu belirleyebilirsiniz.
1.3. subplot ile Çoklu Grafikler
Aynı pencere (figure) içinde birden fazla alt grafik (axes) görüntülemek için `subplot` fonksiyonunu kullanırız. Bu, farklı veri setlerini veya aynı verinin farklı görünümlerini karşılaştırmak için çok kullanışlıdır. Sözdizimi `subplot(m, n, p)` şeklindedir; burada `m` satır sayısını, `n` sütun sayısını ve `p` ise mevcut alt grafiğin konumunu (yukarıdan sola doğru sayarak) belirtir.
`suptitle` (Super Title) fonksiyonu, tüm `subplot`'ları kapsayan bir ana başlık eklemek için kullanılır, bu da farklı grafiklerin bir bütün olarak neyi temsil ettiğini açıkça belirtir.
1.4. Diğer 2D Grafik Tipleri (Örneklerle)
MATLAB, çizgi grafiklerinin yanı sıra birçok farklı 2D görselleştirme imkanı sunar. Her biri belirli veri tipleri ve analiz amaçları için optimize edilmiştir:
Bölüm 2: Kapsamlı 3D Grafik Çizimi
3D grafikler, üç boyutlu uzaydaki ilişkileri veya yüzeyleri görselleştirmek için kullanılır. Bu, özellikle mühendislik, fizik ve matematik gibi alanlarda karmaşık verileri anlamak için hayati öneme sahiptir. MATLAB, gerçekçi ve ayrıntılı 3D görünümler oluşturmak için çeşitli fonksiyonlar sunar.
2.1. plot3 Fonksiyonu ve Temelleri
fonksiyonu, 2D `plot` fonksiyonunun 3 boyutlu karşılığıdır. Üç boyutlu uzayda bir çizgi çizer. Örneğin, bir heliks (sarmal) çizelim:
`view` komutu, 3D grafiğin başlangıç bakış açısını ayarlamanızı sağlar; bu, özellikle belirli bir perspektiften verileri vurgulamak istediğinizde önemlidir.
2.2. meshgrid ile Yüzey Hazırlığı
3D yüzey grafikleri çizmeden önce, genellikle bir ızgara üzerinde x ve y koordinatlarını oluşturmak için
fonksiyonunu kullanırız. Bu, bir fonksiyonun her (x,y) noktası için z değerlerini hesaplamak için gereklidir.
, tek boyutlu vektörlerden iki boyutlu matrisler oluşturur.
Burada, X ve Y matrisleri, ızgara noktalarının koordinatlarını içerir ve Z matrisi, her (x,y) noktası için fonksiyonun değerini içerir.
2.3. surf ve mesh Fonksiyonları
fonksiyonu, renkli yüzeyler oluşturarak 3D fonksiyonları görselleştirir. Yüzeyin her bir paneli renklendirilir ve pürüzsüz bir görünüm sunar.
ise, sadece yüzeyin tel kafes (mesh) görünümünü çizer, yani panelleri renklendirmez, sadece kenarları gösterir. Her iki fonksiyon da 3D yüzeyleri görselleştirmek için temeldir.
`shading interp` komutu, yüzey grafiğinde renklerin daha yumuşak geçişli görünmesini sağlar, bu da görsel kaliteyi artırır. `colorbar` ise renklerin Z değerleriyle nasıl eşleştiğini gösteren bir referans sağlar.
2.4. contour ve contour3 Fonksiyonları
Kontur grafikleri, 3D yüzeylerin 2D projeksiyonlarıdır ve eşdeğer Z değerine sahip noktaları birleştiren çizgiler çizer (eşyükselti eğrileri gibi).
2D kontur grafikleri çizerken,
ise 3D kontur grafikleri çizer, bu da konturları üç boyutlu uzayda gösterir.
`colorbar` komutu, renk skalasını göstererek Z değerlerinin renklerle nasıl eşleştiğini anlamanıza yardımcı olur. `view` fonksiyonu ise 3D grafiğin bakış açısını değiştirir; `view(azimuth, elevation)` formatında kullanılır, burada azimuth yatay açıyı, elevation dikey açıyı ifade eder.
2.5. Renk Haritaları (Colormap) ve Aydınlatma
MATLAB, yüzey ve kontur grafiklerinin renklerini kontrol etmek için birçok yerleşik renk haritası sunar. `colormap` fonksiyonu ile mevcut renk haritasını değiştirebilirsiniz. Her renk haritası, farklı bir görsel vurgu ve veri yorumlama imkanı sunar.
Yüzey grafiklerine gerçekçilik katmak ve derinlik hissi vermek için aydınlatma efektleri de kullanılabilir. `lighting` ve `light` fonksiyonları ile sahneye ışık kaynakları ekleyebilir ve aydınlatma modelini ayarlayabilirsiniz. Bu, özellikle karmaşık 3D nesnelerde önemlidir.
`material` komutu, yüzeyin parlaklık ve yansıma özelliklerini ayarlayarak daha gerçekçi görsel efektler elde etmenizi sağlar.
Bölüm 3: Gelişmiş Grafik Özellikleri ve İpuçları
MATLAB grafiklerini daha da profesyonel, bilgilendirici ve estetik hale getirmek için kullanabileceğiniz bazı gelişmiş özellikler bulunmaktadır. Bu özellikler, verilerinizin hikayesini daha etkili bir şekilde anlatmanıza yardımcı olur.
3.1. Eksen Limitleri ve Ölçekleme
Grafiklerin belirli bir aralığa odaklanmasını sağlamak için eksen limitlerini ayarlayabilirsiniz. `xlim`, `ylim` ve `zlim` fonksiyonları bu amaçla kullanılır. Bu, özellikle veri setinin belirli bir bölümünü vurgulamak istediğinizde faydalıdır.
Logaritmik eksenler için `semilogx` (X ekseni logaritmik), `semilogy` (Y ekseni logaritmik) ve `loglog` (hem X hem Y ekseni logaritmik) fonksiyonlarını kullanabilirsiniz. Bu, özellikle geniş bir aralığa yayılan verileri veya üstel ilişkileri görselleştirmek için faydalıdır.
3.2. Anotasyonlar ve Metin Ekleme
Grafiklere metin, ok veya diğer şekilleri ekleyerek önemli noktaları vurgulayabilir veya açıklamalar ekleyebilirsiniz. `text`, `annotation` ve `arrow` gibi fonksiyonlar bu iş için kullanılır. Bu, grafiği kendi başına açıklayıcı hale getirmeye yardımcı olur.
`annotation` fonksiyonu, grafik penceresine bağımsız metin kutuları, oklar, çizgiler veya dikdörtgenler eklemenizi sağlar. Koordinatlar normalized figure units (0'dan 1'e) cinsindendir.
3.3. Grafik Kaydetme ve Dışa Aktarma
Oluşturduğunuz grafikleri farklı formatlarda kaydedebilirsiniz. `savefig` `.fig` formatında MATLAB figürünü kaydederek daha sonra tekrar MATLAB'de düzenlenebilir olmasını sağlarken, `print` komutu çeşitli resim formatlarında (JPG, PNG, TIFF, PDF vb.) dışa aktarma yaparak diğer uygulamalarda kullanılabilecek çıktılar üretir. Bu, raporlama ve sunumlar için kritik bir adımdır.
`print` fonksiyonunun `-d` argümanı çıktı formatını, `-r` argümanı ise çözünürlüğü belirler. Vektör tabanlı formatlar (PDF, EPS) genellikle raporlar için tercih edilir çünkü kalite kaybı olmadan ölçeklenebilirler.
3.4. Etkileşimli Grafikler ve Veri İnceleme
MATLAB figür pencereleri, fare ile yakınlaştırma (zoom), kaydırma (pan) ve 3D grafiklerde döndürme (rotate3d) gibi etkileşimli özelliklere sahiptir. Bu araçlar, grafiğin farklı bölgelerini detaylı incelemenize veya 3D yüzeyleri farklı açılardan görmenize olanak tanır. `datacursormode` gibi komutlar ile grafik üzerindeki belirli veri noktalarının değerlerini inceleyebilirsiniz.
Sonuç
MATLAB, 2D ve 3D grafik çizimi konusunda inanılmaz derecede esnek ve güçlü bir ortam sunar. Temel `plot` ve `surf` komutlarından başlayarak, eksen etiketleri, başlıklar, lejantlar, renk haritaları ve aydınlatma gibi birçok özelleştirme seçeneğiyle grafiklerinizi zenginleştirebilirsiniz. `subplot` ile çoklu görünümler oluşturabilir, `meshgrid` ile karmaşık yüzeyler hazırlayabilir ve `print` ile profesyonel kalitede çıktılar alabilirsiniz. Bu rehberde sunulan bilgiler ve örnek kodlar, MATLAB'deki veri görselleştirme yolculuğunuzda size sağlam bir temel oluşturacaktır. Unutmayın, pratik yapmak ve farklı veri setleri üzerinde denemeler yapmak, bu yeteneklerinizi geliştirmenin anahtarıdır. MATLAB'in görselleştirme araçlarını etkin bir şekilde kullanarak verilerinizi daha iyi anlayabilir, analiz edebilir ve başkalarıyla daha etkili bir şekilde iletişim kurabilirsiniz. Yaratıcılığınızı kullanarak verilerinizi en iyi şekilde temsil eden grafikleri oluşturmaktan çekinmeyin.
Anahtar Öğrenim Noktaları:
MATLAB, mühendislik, bilim ve finans gibi pek çok alanda veri analizi ve algoritmik geliştirme için güçlü bir platform sunar. Bu platformun en temel ve etkili özelliklerinden biri de, karmaşık verileri anlaşılır ve estetik bir şekilde görselleştirebilme yeteneğidir. İster basit bir fonksiyonun 2 boyutlu grafiğini çiziyor olun, isterse çok değişkenli bir denklemin 3 boyutlu yüzeyini görselleştiriyor olun, MATLAB size ihtiyacınız olan tüm araçları sağlar. Bu rehberde, MATLAB'in 2D ve 3D grafik çizim yeteneklerini baştan sona inceleyecek, temel komutlardan gelişmiş özelleştirmelere kadar birçok konuya değineceğiz. Amacımız, MATLAB'de etkili ve bilgilendirici grafikler oluşturmanız için size kapsamlı bir yol haritası sunmaktır. Veri görselleştirme, sayısal verilerden anlamlı içgörüler çıkarmak için kritik bir adımdır ve MATLAB, bu süreci kolaylaştıran kapsamlı bir araç setine sahiptir. Bu rehber, hem yeni başlayanlar hem de mevcut becerilerini geliştirmek isteyen deneyimli kullanıcılar için pratik bilgiler ve uygulanabilir örnekler sunmaktadır.
Bölüm 1: Temel 2D Grafik Çizimi
2D grafikler, MATLAB'deki görselleştirmenin temelini oluşturur ve en sık kullanılan fonksiyon
Kod:
plot
1.1. plot Fonksiyonu ve Temelleri
Kod:
plot(x, y)
Kod:
x = 0:pi/100:2*pi; % 0'dan 2*pi'ye 100 ara ile değerler oluşturur
y = sin(x);
figure; % Yeni bir grafik penceresi açar
plot(x, y);
xlabel('Açı (Radyan)'); % X ekseni etiketi
ylabel('Sinüs Değeri'); % Y ekseni etiketi
title('Basit Sinüs Grafiği'); % Grafik başlığı
grid on; % Izgara ekler
1.2. Grafik Özelleştirme: Renk, Çizgi Stili ve İşaretçiler
Kod:
plot
[li]Renkler (kısaltma): 'r' (kırmızı), 'g' (yeşil), 'b' (mavi), 'k' (siyah), 'm' (macenta), 'c' (camgöbeği), 'w' (beyaz), 'y' (sarı).
[li]Çizgi Stilleri: '-' (düz çizgi), '--' (kesik çizgi), ':' (noktalı çizgi), '-.' (noktalı-kesik çizgi).
[li]İşaretçiler: 'o' (çember), '+' (artı), '*' (yıldız), '.' (nokta), 'x' (çarpı), 's' (kare), 'd' (elmas), '^' (yukarı üçgen), 'v' (aşağı üçgen), '>' (sağ üçgen), '<' (sol üçgen), 'p' (beşgen), 'h' (altıgen).
Örnek bir kullanım ve aynı eksen üzerinde birden fazla grafik çizme:
Kod:
x = 0:pi/10:2*pi;
y1 = sin(x);
y2 = cos(x);
y3 = sin(x + pi/4);
figure; % Yeni bir grafik penceresi açar
plot(x, y1, 'r--o', 'LineWidth', 1.5, 'MarkerSize', 6); % Kırmızı kesik çizgi, çember işaretçi
hold on; % Mevcut grafiğin üzerine çizim yapmaya devam et komutu
plot(x, y2, 'b:x', 'LineWidth', 1.5, 'MarkerSize', 6); % Mavi noktalı çizgi, çarpı işaretçi
plot(x, y3, 'g-.s', 'LineWidth', 1.5, 'MarkerSize', 6); % Yeşil noktalı-kesik çizgi, kare işaretçi
hold off; % Çizim modunu kapatmak önemli
xlabel('Açı (Radyan)', 'FontSize', 12); % Font boyutu ayarı
ylabel('Değer', 'FontSize', 12);
title('Sinüs ve Kosinüs Fonksiyonları Karşılaştırması', 'FontSize', 14);
legend('Sin(x)', 'Cos(x)', 'Sin(x + \pi/4)', 'Location', 'northwest'); % Lejant ve konumu
grid on; % Izgara çizgilerini göster
axis tight; % Eksenleri verilere göre sıkıca ayarlar
Bu örnekte, `xlabel`, `ylabel`, `title`, `legend` ve `grid on` komutlarının grafiklerin okunabilirliğini nasıl artırdığını görebilirsiniz. `hold on` ve `hold off` ise aynı eksen üzerinde birden fazla çizgi çizmek için kritik öneme sahiptir. `Location` parametresi ile lejantın konumunu belirleyebilirsiniz.
1.3. subplot ile Çoklu Grafikler
Aynı pencere (figure) içinde birden fazla alt grafik (axes) görüntülemek için `subplot` fonksiyonunu kullanırız. Bu, farklı veri setlerini veya aynı verinin farklı görünümlerini karşılaştırmak için çok kullanışlıdır. Sözdizimi `subplot(m, n, p)` şeklindedir; burada `m` satır sayısını, `n` sütun sayısını ve `p` ise mevcut alt grafiğin konumunu (yukarıdan sola doğru sayarak) belirtir.
Kod:
x = 0:0.1:2*pi;
figure; % Yeni bir figure aç
subplot(2, 2, 1); % 2x2'lik ızgaranın 1. konumuna yerleştir
plot(x, sin(x), 'r');
title('Sin(x)');
ylabel('Değer');
subplot(2, 2, 2); % 2x2'lik ızgaranın 2. konumuna yerleştir
plot(x, cos(x), 'b');
title('Cos(x)');
ylabel('Değer');
subplot(2, 2, 3); % 2x2'lik ızgaranın 3. konumuna yerleştir
plot(x, sin(x).*cos(x), 'g'); % Noktasal çarpım
title('Sin(x) * Cos(x)');
xlabel('X Değeri');
ylabel('Değer');
subplot(2, 2, 4); % 2x2'lik ızgaranın 4. konumuna yerleştir
plot(x, sin(x)./cos(x), 'k'); % Noktasal bölme (tan(x)) dikkat! payda sıfır olabilir
title('Tan(x)');
xlabel('X Değeri');
ylabel('Değer');
axis tight; % Eksenleri verilere göre sıkıca ayarlar
suptitle('Çoklu 2D Grafik Gösterimi'); % Tüm figure için ana başlık (R2018b sonrası)
1.4. Diğer 2D Grafik Tipleri (Örneklerle)
MATLAB, çizgi grafiklerinin yanı sıra birçok farklı 2D görselleştirme imkanı sunar. Her biri belirli veri tipleri ve analiz amaçları için optimize edilmiştir:
[li]Kod:scatter(x, y, s, c)
Kod:rnd_data = randn(100, 2); figure; scatter(rnd_data(:,1), rnd_data(:,2), 50, rnd_data(:,1), 'filled'); title('Saçılım Grafiği'); colorbar;
Kod:bar(x, y)
Kod:kategoriler = {'A', 'B', 'C', 'D'}; degerler = [20, 35, 15, 40]; figure; bar(kategoriler, degerler); title('Çubuk Grafik Örneği'); ylabel('Miktar');
Kod:hist(data, bins)
Kod:veri = randn(1000, 1); % Normal dağılımdan 1000 rastgele sayı figure; hist(veri, 30); % 30 çubuklu histogram title('Histogram Örneği'); xlabel('Değer Aralığı'); ylabel('Frekans');
Kod:pie(X, explode, labels)
Kod:satis_rakamlari = [30 20 15 35]; urunler = {'Elma', 'Armut', 'Muz', 'Çilek'}; figure; pie(satis_rakamlari, [0 1 0 0], urunler); % Armut dilimini dışarı çıkar title('Ürün Satış Oranları');
Bölüm 2: Kapsamlı 3D Grafik Çizimi
3D grafikler, üç boyutlu uzaydaki ilişkileri veya yüzeyleri görselleştirmek için kullanılır. Bu, özellikle mühendislik, fizik ve matematik gibi alanlarda karmaşık verileri anlamak için hayati öneme sahiptir. MATLAB, gerçekçi ve ayrıntılı 3D görünümler oluşturmak için çeşitli fonksiyonlar sunar.
2.1. plot3 Fonksiyonu ve Temelleri
Kod:
plot3(x, y, z)
Kod:
t = 0:pi/50:10*pi;
figure;
plot3(sin(t), cos(t), t, 'r', 'LineWidth', 2);
xlabel('X Ekseni');
ylabel('Y Ekseni');
zlabel('Z Ekseni');
title('3D Heliks Grafiği');
grid on;
view(30, 45); % Grafiğin ilk bakış açısını ayarlar (azimuth, elevation)
2.2. meshgrid ile Yüzey Hazırlığı
3D yüzey grafikleri çizmeden önce, genellikle bir ızgara üzerinde x ve y koordinatlarını oluşturmak için
Kod:
meshgrid
Kod:
meshgrid
Kod:
% X ve Y aralıklarını tanımla
x_vals = -2:0.1:2;
y_vals = -2:0.1:2;
% meshgrid ile 2D ızgara oluştur
[X, Y] = meshgrid(x_vals, y_vals);
% Z değerlerini hesaplayan bir fonksiyon tanımla (örneğin, sombrero fonksiyonu)
R = sqrt(X.^2 + Y.^2) + eps; % Sıfıra bölme hatasını önlemek için eps eklenir
Z = sin(R)./R;
2.3. surf ve mesh Fonksiyonları
Kod:
surf(X, Y, Z)
Kod:
mesh(X, Y, Z)
Kod:
% Önceki meshgrid ve Z değerlerini kullanıyoruz
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
figure;
subplot(1, 2, 1);
surf(X, Y, Z); % Renkli yüzey grafiği
title('surf Fonksiyonu: Yüzey Grafiği');
xlabel('X'); ylabel('Y'); zlabel('Z');
shading interp; % Renk geçişlerini yumuşatır
colorbar; % Renk çubuğu ekler
subplot(1, 2, 2);
mesh(X, Y, Z); % Tel kafes grafiği
title('mesh Fonksiyonu: Tel Kafes Grafiği');
xlabel('X'); ylabel('Y'); zlabel('Z');
view(30, 60); % Bakış açısını ayarlar
2.4. contour ve contour3 Fonksiyonları
Kontur grafikleri, 3D yüzeylerin 2D projeksiyonlarıdır ve eşdeğer Z değerine sahip noktaları birleştiren çizgiler çizer (eşyükselti eğrileri gibi).
Kod:
contour(X, Y, Z)
Kod:
contour3(X, Y, Z)
Kod:
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2);
Z = X.^2 + Y.^2; % Bir paraboloid için Z değerleri
figure;
subplot(1, 2, 1);
contour(X, Y, Z, 15); % 15 adet kontur seviyesi
title('2D Kontur Grafiği');
xlabel('X'); ylabel('Y');
colorbar; % Renk skalasını gösterir
subplot(1, 2, 2);
contour3(X, Y, Z, 20, 'LineWidth', 1.5); % 20 adet kontur seviyesi, çizgi kalınlığı
title('3D Kontur Grafiği');
xlabel('X'); ylabel('Y'); zlabel('Z');
view(45, 30); % Bakış açısını ayarlar
2.5. Renk Haritaları (Colormap) ve Aydınlatma
MATLAB, yüzey ve kontur grafiklerinin renklerini kontrol etmek için birçok yerleşik renk haritası sunar. `colormap` fonksiyonu ile mevcut renk haritasını değiştirebilirsiniz. Her renk haritası, farklı bir görsel vurgu ve veri yorumlama imkanı sunar.
Kod:
figure;
surf(X, Y, Z);
title('Jet Renk Haritası ile Yüzey Grafiği');
colormap jet; % 'jet' renk haritasını kullanır (eski varsayılan)
colorbar;
figure;
surf(X, Y, Z);
title('Parula Renk Haritası ile Yüzey Grafiği');
colormap parula; % 'parula' renk haritasını kullanır (MATLAB R2014b sonrası varsayılan)
colorbar;
Yüzey grafiklerine gerçekçilik katmak ve derinlik hissi vermek için aydınlatma efektleri de kullanılabilir. `lighting` ve `light` fonksiyonları ile sahneye ışık kaynakları ekleyebilir ve aydınlatma modelini ayarlayabilirsiniz. Bu, özellikle karmaşık 3D nesnelerde önemlidir.
Kod:
figure;
surf(X, Y, Z, 'FaceColor', 'interp', 'EdgeColor', 'none'); % Yüzey rengini yumuşat, kenarları kaldır
lighting gouraud; % Gouraud aydınlatma modelini uygular (daha pürüzsüz gölgelendirme)
light('Position', [1 0 1], 'Style', 'local'); % Belirli bir konumda yerel bir ışık kaynağı ekler
material shiny; % Yüzeyin materyal özelliklerini ayarlar (parlaklık vb.)
title('Aydınlatmalı ve Malzemeli Yüzey Grafiği');
view(30, 45);
Bölüm 3: Gelişmiş Grafik Özellikleri ve İpuçları
MATLAB grafiklerini daha da profesyonel, bilgilendirici ve estetik hale getirmek için kullanabileceğiniz bazı gelişmiş özellikler bulunmaktadır. Bu özellikler, verilerinizin hikayesini daha etkili bir şekilde anlatmanıza yardımcı olur.
3.1. Eksen Limitleri ve Ölçekleme
Grafiklerin belirli bir aralığa odaklanmasını sağlamak için eksen limitlerini ayarlayabilirsiniz. `xlim`, `ylim` ve `zlim` fonksiyonları bu amaçla kullanılır. Bu, özellikle veri setinin belirli bir bölümünü vurgulamak istediğinizde faydalıdır.
Kod:
plot(x, sin(x));
xlim([pi/2 3*pi/2]); % X ekseni limitlerini [π/2, 3π/2] olarak ayarlar
ylim([-0.5 0.5]); % Y ekseni limitlerini [-0.5, 0.5] olarak ayarlar
title('Sınırlanmış Sinüs Grafiği');
Logaritmik eksenler için `semilogx` (X ekseni logaritmik), `semilogy` (Y ekseni logaritmik) ve `loglog` (hem X hem Y ekseni logaritmik) fonksiyonlarını kullanabilirsiniz. Bu, özellikle geniş bir aralığa yayılan verileri veya üstel ilişkileri görselleştirmek için faydalıdır.
Kod:
x_log = logspace(-1, 2, 100); % 0.1'den 100'e logaritmik aralıkta 100 nokta oluşturur
y_log = x_log.^2;
figure;
subplot(1, 2, 1);
loglog(x_log, y_log, 'b-');
title('loglog Grafiği (X ve Y Logaritmik)');
xlabel('X (Logaritmik Ölçek)'); ylabel('Y (Logaritmik Ölçek)');
grid on;
subplot(1, 2, 2);
semilogy(x_log, y_log, 'r--');
title('semilogy Grafiği (Y Logaritmik)');
xlabel('X (Doğrusal Ölçek)'); ylabel('Y (Logaritmik Ölçek)');
grid on;
3.2. Anotasyonlar ve Metin Ekleme
Grafiklere metin, ok veya diğer şekilleri ekleyerek önemli noktaları vurgulayabilir veya açıklamalar ekleyebilirsiniz. `text`, `annotation` ve `arrow` gibi fonksiyonlar bu iş için kullanılır. Bu, grafiği kendi başına açıklayıcı hale getirmeye yardımcı olur.
Kod:
figure;
plot(x, sin(x));
hold on;
max_x = pi/2; % Sin(x)'in maksimum olduğu nokta
max_y = sin(max_x);
plot(max_x, max_y, 'ro', 'MarkerSize', 8, 'MarkerFaceColor', 'r'); % Maksimum noktayı işaretle
text(max_x + 0.2, max_y - 0.1, 'Maksimum Değer', 'Color', 'red', 'FontSize', 12, 'FontWeight', 'bold');
% Metin kutusu ekleme
annotation('textbox', [0.15 0.8 0.1 0.1], 'String', 'Önemli Bölge', 'FitBoxToText', 'on', 'Color', 'blue');
% Ok ekleme
annotation('arrow', [0.6 0.5], [0.7 0.8], 'Color', 'magenta', 'LineWidth', 2);
title('Anotasyonlu Sinüs Grafiği');
xlabel('X'); ylabel('Sin(X)');
grid on;
3.3. Grafik Kaydetme ve Dışa Aktarma
Oluşturduğunuz grafikleri farklı formatlarda kaydedebilirsiniz. `savefig` `.fig` formatında MATLAB figürünü kaydederek daha sonra tekrar MATLAB'de düzenlenebilir olmasını sağlarken, `print` komutu çeşitli resim formatlarında (JPG, PNG, TIFF, PDF vb.) dışa aktarma yaparak diğer uygulamalarda kullanılabilecek çıktılar üretir. Bu, raporlama ve sunumlar için kritik bir adımdır.
Kod:
% Aktif figürü kaydedelim
figure;
plot(x, sin(x));
title('Kaydedilecek Grafik');
savefig('sinus_grafigi.fig'); % MATLAB figür dosyası olarak kaydet
% Yüksek çözünürlüklü PNG olarak kaydet
print('sinus_grafigi.png', '-dpng', '-r300'); % '-r300' 300 dpi çözünürlük belirtir
% Vektör tabanlı PDF olarak kaydet (kalite kaybı olmadan büyütülebilir)
print('sinus_grafigi.pdf', '-dpdf', '-bestfit'); % '-bestfit' kağıda en uygun hale getirir
% JPEG olarak kaydet
print('sinus_grafigi.jpg', '-djpeg', '-r150');
3.4. Etkileşimli Grafikler ve Veri İnceleme
MATLAB figür pencereleri, fare ile yakınlaştırma (zoom), kaydırma (pan) ve 3D grafiklerde döndürme (rotate3d) gibi etkileşimli özelliklere sahiptir. Bu araçlar, grafiğin farklı bölgelerini detaylı incelemenize veya 3D yüzeyleri farklı açılardan görmenize olanak tanır. `datacursormode` gibi komutlar ile grafik üzerindeki belirli veri noktalarının değerlerini inceleyebilirsiniz.
Kod:
figure;
plot(x, y);
datacursormode on; % Veri imleci modunu açar
% Şimdi grafik üzerinde herhangi bir noktaya tıklayarak, o noktanın X ve Y koordinatlarını (veya 3D'de Z koordinatını) görebilirsiniz. Bu, belirli bir noktanın değerini hızlıca öğrenmek için çok kullanışlıdır.
% 3D grafikte döndürme modunu etkinleştirme
figure;
surf(X, Y, Z);
rotate3d on; % 3D döndürme modunu açar. Artık fare ile grafiği döndürebilirsiniz.
Önemli Not: MATLAB'in grafik çizim yetenekleri oldukça geniştir ve burada ele alınmayan birçok özelleştirme seçeneği bulunmaktadır. Her fonksiyonun detaylı kullanımını ve ek argümanlarını keşfetmek için resmi MATLAB dokümantasyonu en iyi kaynaktır. Daha fazla bilgi ve en güncel özellikler için MATLAB Dokümantasyonu'nu düzenli olarak ziyaret etmeniz önerilir. Özellikle `properties` ve `handle graphics` konularını incelemek, grafikler üzerinde daha derinlemesine kontrol sağlamanıza yardımcı olacaktır.
Sonuç
MATLAB, 2D ve 3D grafik çizimi konusunda inanılmaz derecede esnek ve güçlü bir ortam sunar. Temel `plot` ve `surf` komutlarından başlayarak, eksen etiketleri, başlıklar, lejantlar, renk haritaları ve aydınlatma gibi birçok özelleştirme seçeneğiyle grafiklerinizi zenginleştirebilirsiniz. `subplot` ile çoklu görünümler oluşturabilir, `meshgrid` ile karmaşık yüzeyler hazırlayabilir ve `print` ile profesyonel kalitede çıktılar alabilirsiniz. Bu rehberde sunulan bilgiler ve örnek kodlar, MATLAB'deki veri görselleştirme yolculuğunuzda size sağlam bir temel oluşturacaktır. Unutmayın, pratik yapmak ve farklı veri setleri üzerinde denemeler yapmak, bu yeteneklerinizi geliştirmenin anahtarıdır. MATLAB'in görselleştirme araçlarını etkin bir şekilde kullanarak verilerinizi daha iyi anlayabilir, analiz edebilir ve başkalarıyla daha etkili bir şekilde iletişim kurabilirsiniz. Yaratıcılığınızı kullanarak verilerinizi en iyi şekilde temsil eden grafikleri oluşturmaktan çekinmeyin.
Anahtar Öğrenim Noktaları:
[li]2D Grafik Temelleri: `plot` fonksiyonunun esnekliği ve x, y verisi ile çizim yapma.
[li]3D Grafik Temelleri: `plot3`, `meshgrid`, `surf`, `mesh` ve `contour` fonksiyonlarının kullanımı.
[li]Grafik Özelleştirme: Renk, çizgi stili, işaretçiler, başlıklar, etiketler ve lejantların önemi.
[li]Gelişmiş Teknikler: `subplot`, renk haritaları, aydınlatma, eksen limitleri ve anotasyonlar ile grafik kalitesini artırma.
[li]Dışa Aktarma: Grafikleri farklı formatlarda kaydederek paylaşıma hazır hale getirme.