Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

Dash Plotly kullanarak yalnızca Python ile modern, interaktif ve production-ready web dashboard’larının nasıl geliştirileceğini temelden başlayarak gerçek kod örnekleriyle öğreneceksiniz. Layout, callback ve grafik oluşturma mantığını derinlemesine anlayarak veri odaklı uygulamalar için güçlü dashboard’lar oluşturabilecek seviyeye geleceksiniz.
Veri görselleştirme, modern yazılım sistemlerinin vazgeçilmez bir parçasıdır. Özellikle veri analizi, machine learning, bioinformatics, finans ve operasyonel izleme sistemlerinde, verinin grafiksel olarak sunulması kritik önem taşır.
Python ekosisteminde dashboard geliştirmek için en güçlü araçlardan biri:
Dash (Plotly Dash)
Dash, tamamen Python ile, frontend bilgisi gerektirmeden, production-level web dashboard’ları geliştirmenizi sağlar.
Bu yazıda Dash’i:
öğreneceksiniz.
Dash, Plotly tarafından geliştirilen, Python tabanlı bir web uygulaması framework’üdür.
Şu teknolojileri kullanır:
Ama siz sadece Python yazarsınız.
Frontend yazmanız gerekmez.
Dash uygulaması 3 temel parçadan oluşur:
Dash App
│
├── Layout (UI)
│
├── Callback (logic)
│
└── Graph components
HTML yapısıdır.
Örnek:
Başlık
Grafik
Dropdown
Button
Event handling sistemidir.
Örnek:
Dropdown değişti → Grafik güncellendi
Hazır UI bileşenleri:
Python 3.9+ önerilir.
Kurulum:
pip install dash plotly pandas
Dosya oluştur:
app.py
Kod:
from dash import Dash, html
app = Dash(__name__)
app.layout = html.Div([
html.H1("My First Dash App"),
html.P("Hello Dash!")
])
if __name__ == "__main__":
app.run(debug=True)
Çalıştır:
python app.py
Tarayıcı:
http://127.0.0.1:8050
Önce Plotly grafiği oluşturalım.
import plotly.express as px
df = px.data.iris()
fig = px.scatter(
df,
x="sepal_width",
y="sepal_length",
color="species"
)
Dash’e ekleyelim:
from dash import Dash, html, dcc
import plotly.express as px
app = Dash(__name__)
df = px.data.iris()
fig = px.scatter(
df,
x="sepal_width",
y="sepal_length",
color="species"
)
app.layout = html.Div([
html.H1("Iris Dataset"),
dcc.Graph(figure=fig)
])
if __name__ == "__main__":
app.run(debug=True)
En önemli bileşenler:
dcc.Graph
dcc.Dropdown
dcc.Input
dcc.Slider
dcc.Interval
Kod:
from dash import Dash, html, dcc
import plotly.express as px
app = Dash(__name__)
df = px.data.gapminder()
app.layout = html.Div([
html.H1("Population Dashboard"),
dcc.Dropdown(
id="year-dropdown",
options=[
{"label": str(year), "value": year}
for year in df["year"].unique()
],
value=2007
),
dcc.Graph(id="graph")
])
if __name__ == "__main__":
app.run(debug=True)
Henüz interaktif değil.
Callback ekleyeceğiz.
Dash’in en önemli kısmı.
Import:
from dash import Input, Output
Callback:
@app.callback(
Output("graph", "figure"),
Input("year-dropdown", "value")
)
def update_graph(selected_year):
filtered = df[df["year"] == selected_year]
fig = px.scatter(
filtered,
x="gdpPercap",
y="lifeExp",
size="pop",
color="continent"
)
return fig
Tam kod:
from dash import Dash, html, dcc, Input, Output
import plotly.express as px
app = Dash(__name__)
df = px.data.gapminder()
app.layout = html.Div([
html.H1("Population Dashboard"),
dcc.Dropdown(
id="year-dropdown",
options=[
{"label": str(year), "value": year}
for year in df["year"].unique()
],
value=2007
),
dcc.Graph(id="graph")
])
@app.callback(
Output("graph", "figure"),
Input("year-dropdown", "value")
)
def update_graph(selected_year):
filtered = df[df["year"] == selected_year]
fig = px.scatter(
filtered,
x="gdpPercap",
y="lifeExp",
size="pop",
color="continent"
)
return fig
if __name__ == "__main__":
app.run(debug=True)
Artık dashboard interaktif.
Örnek:
Dropdown
Slider
Graph
Önerilen yapı:
project/
│
├── app.py
├── layouts/
│ └── main_layout.py
│
├── callbacks/
│ └── graph_callbacks.py
│
├── data/
│ └── data_loader.py
│
└── requirements.txt
Dash aslında Flask kullanır.
Custom Flask server:
from flask import Flask
from dash import Dash
server = Flask(__name__)
app = Dash(__name__, server=server)
CSV:
import pandas as pd
df = pd.read_csv("data.csv")
Database:
import psycopg2
API:
import requests
Interval component:
dcc.Interval(
id="interval",
interval=5000
)
Callback:
@app.callback(
Output("graph", "figure"),
Input("interval", "n_intervals")
)
def update_live(n):
return new_figure
CSS:
assets/style.css
Dash otomatik yükler.
Gunicorn ile:
gunicorn app:server
Docker ile deploy edilir.
| Tool | Language | Frontend required |
|---|---|---|
| Dash | Python | No |
| Streamlit | Python | No |
| React | JS | Yes |
| Grafana | Mixed | Limited |
Kullan:
Kullanma:
Bioinformatics dashboard örneği:
Sample selector
Variant count graph
Quality metrics
Coverage chart
Dash bu tarz işler için idealdir.
Dash öğrenirken kritik kavramlar:
Dash, Python ile modern, interaktif ve production-ready dashboard geliştirmenin en güçlü yollarından biridir.
Avantajları:
Özellikle veri yoğun backend sistemlerinde, Dash vazgeçilmez bir araçtır.
Backend developer olarak şunu öneririm:
Dash’i şu use-case’lerde kullan:
React yerine Dash kullanmak geliştirme süresini 5-10 kat azaltabilir.