Üç Boyutlu Grafikler (3D Plotting)
Matplotlib kullanarak üç boyutlu grafikler oluşturmak mümkündür. Üç boyutlu grafikler, özellikle çok boyutlu veri setlerinde veri trendlerini ve ilişkileri görselleştirmek için kullanılır.
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
# Verileri tanımlama
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))
# 3D grafik oluşturma
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, cmap='viridis')
# Grafik ayarları
ax.set_title('3D Yüzey Grafiği')
ax.set_xlabel('X Ekseni')
ax.set_ylabel('Y Ekseni')
ax.set_zlabel('Z Ekseni')
plt.show()
Açıklama:
from mpl_toolkits.mplot3d import Axes3D ile 3D grafikleri destekleyen modülü içe aktarıyoruz.
ax = fig.add_subplot(111, projection='3d') ile 3D eksen oluşturuyoruz.
ax.plot_surface(x, y, z, cmap='viridis') ile yüzey grafiği oluşturuyoruz ve renk haritasını belirliyoruz.
Matplotlib'de Temalar ve Stil Ayarları
Matplotlib, çeşitli temalar ve stil ayarları sunar. Bu ayarlar grafiklerin estetik görünümünü özelleştirmenizi sağlar.
import matplotlib.pyplot as plt
import numpy as np
# Veri oluşturma
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Stil ayarları
plt.style.use('ggplot')
# Grafik oluşturma
plt.plot(x, y)
plt.title('GGPlot Stili')
plt.xlabel('X Ekseni')
plt.ylabel('Y Ekseni')
plt.show()
Açıklama:
plt.style.use('ggplot') ile ggplot stilini kullanıyoruz.
Etkileşimli Grafikler Oluşturma (mpld3 ve Plotly ile Entegrasyon)
Etkileşimli grafikler, kullanıcıların grafiklerle daha fazla etkileşimde bulunmasını sağlar. Matplotlib grafikleri, mpld3 ve Plotly ile etkileşimli hale getirilebilir.
import matplotlib.pyplot as plt
import mpld3
# Verileri tanımlama
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# Grafik oluşturma
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Etkileşimli Grafik')
mpld3.show()
Açıklama:
import mpld3 ile mpld3 kütüphanesini içe aktarıyoruz.
mpld3.show() ile grafiği etkileşimli olarak görüntülüyoruz.
Özel Grafik Türleri (Polarmesh, Hexbin, vs.)
Matplotlib, çeşitli özel grafik türleri sunar. Örneğin, polarmesh ve hexbin grafikleri.
import matplotlib.pyplot as plt
import numpy as np
# Veri oluşturma
x = np.random.randn(10000)
y = np.random.randn(10000)
# Hexbin grafik oluşturma
plt.hexbin(x, y, gridsize=50, cmap='Blues')
plt.colorbar(label='count')
plt.title('Hexbin Grafiği')
plt.show()
Açıklama:
plt.hexbin(x, y, gridsize=50, cmap='Blues') ile hexbin grafiği oluşturuyoruz.
4.2. İleri Düzey Seaborn Özelleştirmeleri
Çift Eksenli Grafikler
Çift eksenli grafikler, iki farklı veri setini aynı grafikte görselleştirmek için kullanılır.
import seaborn as sns
import matplotlib.pyplot as plt
# Verileri tanımlama
x = np.arange(0, 10, 0.1)
y1 = np.sin(x)
y2 = np.exp(x / 10)
# Grafik oluşturma
fig, ax1 = plt.subplots()
ax1.set_xlabel('X Ekseni')
ax1.set_ylabel('Sinüs', color='tab:blue')
ax1.plot(x, y1, color='tab:blue')
ax1.tick_params(axis='y', labelcolor='tab:blue')
ax2 = ax1.twinx()
ax2.set_ylabel('Üstel', color='tab:red')
ax2.plot(x, y2, color='tab:red')
ax2.tick_params(axis='y', labelcolor='tab:red')
plt.title('Çift Eksenli Grafik')
plt.show()
Açıklama:
ax2 = ax1.twinx() ile ikinci bir y ekseni oluşturuyoruz.
Seaborn ile Matplotlib'i Birlikte Kullanma
Seaborn ve Matplotlib birlikte kullanılarak grafiklerin estetiğini artırabilirsiniz.
import seaborn as sns
import matplotlib.pyplot as plt
# Verileri tanımlama
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Grafik oluşturma
sns.set(style="whitegrid")
plt.plot(x, y, marker='o')
plt.title('Seaborn ve Matplotlib Birlikte Kullanımı')
plt.xlabel('X Ekseni')
plt.ylabel('Y Ekseni')
plt.show()
Açıklama:
sns.set(style="whitegrid") ile Seaborn stilini ayarlıyoruz ve Matplotlib ile grafik oluşturuyoruz.
Seaborn Temaları ve Stil Ayarları
Seaborn, çeşitli temalar ve stil ayarları sunar. Bu ayarlar grafiklerin estetik görünümünü özelleştirmenizi sağlar.
import seaborn as sns
import matplotlib.pyplot as plt
# Verileri tanımlama
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Stil ayarları
sns.set(style="darkgrid")
# Grafik oluşturma
sns.lineplot(x=x, y=y)
plt.title('Darkgrid Stili')
plt.xlabel('X Ekseni')
plt.ylabel('Y Ekseni')
plt.show()
Açıklama:
sns.set(style="darkgrid") ile darkgrid stilini kullanıyoruz.
Etkileşimli Grafikler Oluşturma (Plotly ile Entegrasyon)
Seaborn grafikleri, Plotly ile etkileşimli hale getirilebilir.
import seaborn as sns
import matplotlib.pyplot as plt
import plotly.express as px
# Verileri tanımlama
df = sns.load_dataset('iris')
# Grafik oluşturma
fig = px.scatter(df, x='sepal_width', y='sepal_length', color='species', title='Etkileşimli Scatter Plot')
fig.show()
Açıklama:
import plotly.express as px ile Plotly Express kütüphanesini içe aktarıyoruz.
px.scatter ile etkileşimli bir scatter plot oluşturuyoruz.
5. Uygulama ve Projeler
Gerçek Veri Setleri ile Uygulamalar
Bu bölümde, gerçek veri setleri kullanarak uygulamalar yapacağız. Bu projeler, öğrendiğiniz grafik türlerini ve özelleştirmeleri uygulamanız için fırsat sunar.
Örnek Proje: Ekonomik Verilerin Görselleştirilmesi
import seaborn as sns
import matplotlib.pyplot as plt
# Veriyi yükleme
df = sns.load_dataset('flights')
# Çizgi grafiği oluşturma
sns.lineplot(data=df, x='year', y='passengers', hue='month')
plt.title('Aylık Yolcu Sayıları')
plt.xlabel('Yıl')
plt.ylabel('Yolcu Sayısı')
plt.show()
Örnek Proje: Sağlık Verilerinin Görselleştirilmesi
pythonKodu kopyala
import seaborn as sns
import matplotlib.pyplot as plt
# Veriyi yükleme
df = sns.load_dataset('exercise')
# Kutu grafiği oluşturma
sns.boxplot(data=df, x='time', y='pulse', hue='kind')
plt.title('Egzersiz Türüne Göre Nabız Dağılımı')
plt.xlabel('Zaman')
plt.ylabel('Nabız')
plt.show()
Örnek Proje: Sosyal Medya Etkileşimlerinin Görselleştirilmesi
pythonKodu kopyala
import seaborn as sns
import matplotlib.pyplot as plt
# Veriyi yükleme
df = sns.load_dataset('tips')
# Dağılım grafiği oluşturma
sns.scatterplot(data=df, x='total_bill', y='tip', hue='time')
plt.title('Fatura ve Bahşiş İlişkisi')
plt.xlabel('Toplam Fatura')
plt.ylabel('Bahşiş')
plt.show()
Python temellerini atıp, veri analizi ve bilimi için yetkinlik kazanmak istiyorsanız, 1 aylık yoğun Python kampına hemen kayıt olabilirsiniz. ~40 saat canlı ders, ~50 adet kapsamlı proje, ~15 adet quiz ve sayısız kodlama egzersizinden oluşan, Finlandiya eğitim modellerinden esinlenilerek Helsinki'de geliştirilen interaktif ve pratik odaklı eğitim programına hemen göz atın !