Matplotlib'de İnteraktif Grafikler: Plotly ile Entegrasyon
Matplotlib statik grafikler için güçlü ama bazen etkileşimlilik eksik kalır. Plotly entegrasyonu bu sorunu çözer ve zoomlanabilir, tıklanabilir, hover bilgisi gösteren grafikler yaratır.
Önce gerekli kütüphaneleri kur:
1pip install matplotlib plotly pandasMatplotlib grafiğini doğrudan Plotly'ye dönüştürmenin en pratik yolu `plotly.tools.mpl_to_plotly()` kullanmaktır. Ancak daha modern ve kontrollü yaklaşım, Plotly Express veya Graph Objects ile sıfırdan oluşturmaktır.
Burada basit bir veri seti ile örnek gösterelim:
1import plotly.graph_objects as go2import pandas as pd3import numpy as np45# Örnek veri6aylar = ['Ocak', 'Şubat', 'Mart', 'Nisan', 'Mayıs']7satislar = [150, 230, 180, 290, 250]89# Plotly ile etkileşimli grafik10fig = go.Figure()11fig.add_trace(go.Bar(12x=aylar,13y=satislar,14name='Aylık Satış',15marker=dict(color='#1f77b4', opacity=0.8),16hovertemplate='<b>%{x}</b><br>Satış: %{y} ₺<extra></extra>'17))1819fig.update_layout(20title='2024 Aylık Satış Verileri',21xaxis_title='Aylar',22yaxis_title='Satış (₺)',23hovermode='x unified',24template='plotly_white',25height=50026)2728fig.show()Beklenen çıktı: Fare üzerine geldiğinde ay ve satış değerini gösteren, zoom ve pan yapılabilen etkileşimli bir bar grafik.
Eğer Matplotlib ile çizilmiş bir grafiği Plotly'ye çevirmek istersen:
1import matplotlib.pyplot as plt2import plotly.tools as tls34# Matplotlib grafiği5fig_mpl, ax = plt.subplots(figsize=(8, 5))6ax.plot(aylar, satislar, marker='o', linewidth=2, color='green')7ax.set_title('Satış Trendi')8ax.set_xlabel('Aylar')9ax.set_ylabel('Satış (₺)')1011# Plotly'ye dönüştür12fig_plotly = tls.mpl_to_plotly(fig_mpl)13fig_plotly.show()Bu yöntem basit ama sınırlıdır. Matplotlib'in tüm özelliklerini Plotly'ye aktaramaz.
Pratik ipucu: Plotly Express daha hızlı ve temiz. Karmaşık tasarımlar için Graph Objects kullan. Eğer Matplotlib stilini seviyorsan `plotly_dark` veya `plotly` template'lerini dene. Ayrıca `fig.write_html('grafik.html')` ile grafiği HTML dosyası olarak kaydedebilir, web sayfasına gömebilirsin. Hover bilgisini özelleştirmek için `hovertemplate` parametresi hayat kurtarıcı; `%{x}`, `%{y}` gibi yer tutucuları kullan.
0 yorum