Matplotlib’in Yüzey Grafikleriyle 3B Veri Görselleştirmesinde Ustalaşma
- Ortamınızı Kurma
- Temel Bir Yüzey Grafiği Oluşturma
- Yüzey Grafiğinizi Özelleştirme
- Gelişmiş Örnekler ve Veri İşleme
- Yaygın Sorunların Giderilmesi
Ortamınızı Kurma
Çarpıcı 3B görselleştirmelerin oluşturulmasına dalmadan önce, gerekli kütüphanelerin kurulu olduğundan emin olun. Matplotlib ve NumPy’yi kurmak için pip kullanın:
pip install matplotlib numpy
Temel Bir Yüzey Grafiği Oluşturma
Herhangi bir yüzey grafiğinin temeli, bir veri noktası ızgarasında yatmaktadır. Bu ızgarayı oluşturmak için NumPy’nin `meshgrid`’ini kullanacağız ve ardından her noktadaki Z değerlerini (yükseklik) belirlemek için bir fonksiyon tanımlayacağız.
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
# Izgarayı oluştur
x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(x, y)
# Z değerlerini tanımla (örnek: bir paraboloit)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
# Şekil ve eksen nesnesini oluştur
fig = plt.figure(figsize=(10, 8)) # Daha iyi görüntüleme için şekil boyutu artırıldı
ax = fig.add_subplot(111, projection='3d')
# Yüzeyi çiz
surf = ax.plot_surface(X, Y, Z, cmap='viridis') # Bir renk haritası kullanarak
# Bir renk çubuğu ekle
fig.colorbar(surf, shrink=0.5, aspect=5)
# Etiketleri ve başlığı ayarla
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('sin(√(X² + Y²)) Yüzey Grafiği')
# Grafiği göster
plt.show()
Bu, bir renk haritası ve renk çubuğu kullanarak geliştirilmiş netliğe sahip bir yüzey grafiği oluşturur.
Yüzey Grafiğinizi Özelleştirme
Matplotlib, görselleştirmenizi özelleştirmek için kapsamlı özelleştirme seçenekleri sunar:
Renk Haritaları
`cmap` bağımsız değişkenini kullanarak renk şemasını kontrol edin. ‘plasma’, ‘magma’, ‘inferno’, ‘cividis’ ve ‘coolwarm’ gibi seçenekleri keşfedin.
ax.plot_surface(X, Y, Z, cmap='plasma')
Kontur Çizgileri
Belirli Z değer aralıklarını vurgulamak için kontur çizgilerini üst üste bindirin. `offset` parametresi, kontur çizgileri için Z seviyesini ayarlar.
ax.contour(X, Y, Z, offset=-1, cmap='viridis')
Aydınlatma ve Örgü Yoğunluğu
Yüzey örgüsünün yoğunluğunu kontrol etmek için `rstride` ve `cstride`’ı ayarlayın. Daha yüksek değerler daha pürüzsüz yüzeyler üretir ancak ayrıntıları kaybedebilir.
ax.plot_surface(X, Y, Z, cmap='viridis', rstride=2, cstride=2)
Tel Kafes Grafikleri
Farklı bir bakış açısı için, yüzeyi bir tel kafes olarak gösterin:
ax.plot_wireframe(X, Y, Z, color='black')
Etiketler ve Başlıklar
Veri yorumlaması için açık etiketler ve başlıklar çok önemlidir.
ax.set_xlabel('X Ekseni Etiketi')
ax.set_ylabel('Y Ekseni Etiketi')
ax.set_zlabel('Z Ekseni Etiketi')
ax.set_title('Açıklayıcı Grafik Başlığı')
Gelişmiş Örnekler ve Veri İşleme
İki değişkenin herhangi bir fonksiyonunu görselleştirmek için bu kodu uyarlayın. X, Y ve Z dizilerinizi oluşturmak için pandas gibi kütüphaneler kullanarak dosyalardan (CSV, metin vb.) veri içe aktarın.
Yaygın Sorunların Giderilmesi
* **Veri şekli:** X, Y ve Z dizilerinin uyumlu boyutlarda olduğundan emin olun.
* **İçe aktarma ifadeleri:** Doğru içe aktarımlardan emin olun (`matplotlib.pyplot`, `numpy`, `mpl_toolkits.mplot3d`).
* **Projeksiyon:** Alt grafik projeksiyonunun ‘3d’ olarak ayarlandığını doğrulayın.