Matplotlib Grafiklerini İnteraktif Yapma: Plotly Dönüştürme
Matplotlib statik grafikler üretir. Kullanıcı hover ettiğinde bilgi görmek, zoom yapmak veya filtrelemek istiyorsan Plotly'ye geçmen gerekir. İkisi arasında doğrudan dönüştürme yapabileceğin gibi, baştan Plotly ile yazabilirsin de.
En pratik yol `plotly.express` kullanmak. Matplotlib'e benzer söz dizimi ama interaktif çıktı verir.
1import plotly.express as px2import pandas as pd34# Örnek veri5df = pd.DataFrame({6'Ay': ['Ocak', 'Şubat', 'Mart', 'Nisan'],7'Satış': [150, 200, 175, 250],8'Bölge': ['Kuzey', 'Kuzey', 'Güney', 'Güney']9})1011# Plotly çizgi grafiği12fig = px.line(df, x='Ay', y='Satış', color='Bölge',13title='Aylık Satış Trendi',14markers=True)1516fig.show()Beklenen çıktı: Tarayıcıda açılan interaktif grafik. Mouse ile hover ettiğinde değerler görünür, sağ üstte zoom ve pan araçları vardır.
Matplotlib kodun varsa, veriyi pandas DataFrame'e yükle ve yukarıdaki yapıyı kullan. Matplotlib'in `plt.plot()` yerine `px.line()`, `plt.scatter()` yerine `px.scatter()` yaz.
Daha karmaşık grafikler için `plotly.graph_objects` kullan:
1import plotly.graph_objects as go23fig = go.Figure()45fig.add_trace(go.Scatter(6x=['A', 'B', 'C'],7y=[10, 15, 13],8mode='lines+markers',9name='Seri 1'10))1112fig.add_trace(go.Scatter(13x=['A', 'B', 'C'],14y=[16, 5, 11],15mode='lines+markers',16name='Seri 2'17))1819fig.update_layout(title='Karşılaştırmalı Grafik',20hovermode='x unified')21fig.show()Beklenen çıktı: İki seriyi gösteren çizgi grafiği, hover ettiğinde her iki seri de aynı x noktasında görünür.
Grafikleri HTML dosyası olarak kaydetmek için `fig.write_html('grafik.html')` kullan. Sunucuda deploy etmek istiyorsan Streamlit veya Dash kullan.
Sık yapılan hata: Plotly'nin veri formatı Matplotlib'ten farklıdır. Her zaman DataFrame kullan, NumPy dizileri doğrudan geçme. Ayrıca `fig.show()` Jupyter'de otomatik çalışır ama script olarak çalıştırırsan tarayıcı açılır.
0 yorum