Dash Framework এর মাধ্যমে Interactive Dashboard তৈরি করা

Plotly এবং Dash Integration - প্লটলি (Plotly) - Big Data and Analytics

280

Dash একটি ওপেন সোর্স ফ্রেমওয়ার্ক যা Plotly এর উপর ভিত্তি করে তৈরি, এবং এটি Python ব্যবহার করে ইন্টারেক্টিভ ওয়েব ড্যাশবোর্ড তৈরি করার জন্য ব্যবহৃত হয়। Dash-এর মাধ্যমে আপনি ডেটা ভিজুয়ালাইজেশন, ইন্টারেক্টিভ UI উপাদান, এবং ব্যবহারকারীর সাথে যোগাযোগের জন্য শক্তিশালী ড্যাশবোর্ড তৈরি করতে পারেন। এটি সাধারণত ডেটা সায়েন্স এবং অ্যানালিটিক্সের জন্য ব্যবহৃত হয়, যেখানে আপনি ডেটার ভিজুয়াল রিপ্রেজেন্টেশন তৈরি এবং ব্যবহারকারীর ইনপুটের উপর ভিত্তি করে ডেটা বিশ্লেষণ করতে পারেন।


Dash-এর মূল উপাদান

Dash ফ্রেমওয়ার্ক তিনটি মূল উপাদানের মাধ্যমে কাজ করে:

  1. Dash Layout: ড্যাশবোর্ডের লেআউট এবং উপাদানগুলোকে সংগঠিত করা।
  2. Dash Callbacks: ইন্টারেক্টিভ উপাদানগুলোর মধ্যে সংযোগ তৈরি করা (যেমন, ড্রপডাউন, স্লাইডার ইত্যাদির মাধ্যমে ডেটার পরিবর্তন বা আপডেট)।
  3. Dash Components: ড্যাশবোর্ডের ইন্টারফেস তৈরি করতে বিভিন্ন UI উপাদান (গ্রাফ, ড্রপডাউন, স্লাইডার, টেবিল ইত্যাদি) ব্যবহার করা।

Dash দিয়ে Interactive Dashboard তৈরি করা

ধরি আপনি একটি ড্যাশবোর্ড তৈরি করতে চান যেখানে একটি গ্রাফ এবং একটি ড্রপডাউন থাকবে, এবং ব্যবহারকারী ড্রপডাউন থেকে কোন একটি বিকল্প নির্বাচন করলে সেই অনুযায়ী গ্রাফ আপডেট হবে।

Dash Dashboard উদাহরণ

এখানে আমরা Plotly দিয়ে একটি গ্রাফ তৈরি করব এবং Dash দিয়ে একটি ইন্টারেক্টিভ ড্যাশবোর্ড তৈরি করব।

  1. Dash এবং Plotly ইনস্টল করা

প্রথমে Dash এবং Plotly ইনস্টল করতে হবে:

pip install dash plotly
  1. Dash App তৈরি করা

এখন আমরা একটি Dash অ্যাপ তৈরি করব যেখানে একটি গ্রাফ এবং একটি ড্রপডাউন থাকবে।

import dash
from dash import dcc, html
import plotly.express as px
import pandas as pd

# Dash অ্যাপ ইনিশিয়ালাইজ করা
app = dash.Dash(__name__)

# উদাহরণ ডেটাসেট
df = px.data.gapminder()

# Dash Layout তৈরি করা
app.layout = html.Div([
    html.H1("Interactive Dashboard with Dash and Plotly"),
    
    # ড্রপডাউন তৈরি করা
    dcc.Dropdown(
        id='continent-dropdown',
        options=[{'label': continent, 'value': continent} for continent in df['continent'].unique()],
        value='Asia',  # Default value
        style={'width': '50%'}
    ),
    
    # গ্রাফ প্লট করার জন্য Div
    dcc.Graph(id='life-exp-vs-gdp'),
])

# Dash Callback দিয়ে গ্রাফ আপডেট করা
@app.callback(
    dash.dependencies.Output('life-exp-vs-gdp', 'figure'),
    [dash.dependencies.Input('continent-dropdown', 'value')]
)
def update_graph(selected_continent):
    filtered_df = df[df['continent'] == selected_continent]
    
    # Scatter Plot তৈরি করা
    fig = px.scatter(filtered_df, x='gdpPercap', y='lifeExp', color='country', size='pop', 
                     log_x=True, title=f"Life Expectancy vs GDP per Capita ({selected_continent})")
    
    return fig

# অ্যাপ রান করা
if __name__ == '__main__':
    app.run_server(debug=True)

ব্যাখ্যা:

  • Dash App Layout: এখানে আমরা একটি হেডিং (HTML), একটি ড্রপডাউন (dropdown) এবং একটি গ্রাফ (graph) রেখেছি।
  • Dash Callback: @app.callback ডেকোরেটরের মাধ্যমে আমরা ড্রপডাউন থেকে নির্বাচিত মহাদেশের উপর ভিত্তি করে গ্রাফ আপডেট করার জন্য একটি ফাংশন তৈরি করেছি।
  • Graph: ড্রপডাউন থেকে নির্বাচিত মহাদেশের ডেটার উপর একটি scatter plot তৈরি করা হয়েছে, যেখানে gdpPercap এবং lifeExp এর মধ্যে সম্পর্ক দেখানো হচ্ছে।

Dash Dashboard কাস্টমাইজ করা

Dash দিয়ে আপনি আপনার ড্যাশবোর্ডের উপাদান কাস্টমাইজ করতে পারেন, যেমন স্টাইলিং, আরো ইন্টারেক্টিভ উপাদান যোগ করা, বা আরও জটিল কলব্যাক ফাংশন তৈরি করা।

১. ইনপুট এবং আউটপুট কাস্টমাইজ করা

আপনি Dash এর মাধ্যমে আরো ইন্টারেক্টিভ উপাদান যোগ করতে পারেন, যেমন Sliders, Input Boxes, Radio Items ইত্যাদি।

app.layout = html.Div([
    html.H1("Interactive Dashboard with Dash and Plotly"),
    
    # স্লাইডার যোগ করা
    dcc.Slider(
        id='year-slider',
        min=df['year'].min(),
        max=df['year'].max(),
        step=1,
        value=df['year'].min(),
        marks={year: str(year) for year in range(df['year'].min(), df['year'].max()+1, 5)}
    ),
    
    # গ্রাফ প্লট করার জন্য Div
    dcc.Graph(id='life-exp-vs-gdp'),
])

@app.callback(
    dash.dependencies.Output('life-exp-vs-gdp', 'figure'),
    [dash.dependencies.Input('year-slider', 'value')]
)
def update_graph(selected_year):
    filtered_df = df[df['year'] == selected_year]
    
    # Scatter Plot তৈরি করা
    fig = px.scatter(filtered_df, x='gdpPercap', y='lifeExp', color='country', size='pop', 
                     log_x=True, title=f"Life Expectancy vs GDP per Capita ({selected_year})")
    
    return fig

এখানে আমরা Slider যোগ করেছি যা ব্যবহারকারীকে একটি নির্দিষ্ট বছরের ডেটা দেখতে সাহায্য করবে। Callback ফাংশনে এই স্লাইডারের মান অনুযায়ী গ্রাফ আপডেট হবে।

২. ড্যাশবোর্ডে গ্রাফ কাস্টমাইজেশন

গ্রাফের স্টাইল এবং লেআউট কাস্টমাইজ করতে update_layout ফাংশন ব্যবহার করা হয়:

fig.update_layout(
    title='Customized Title',
    xaxis_title='GDP per Capita',
    yaxis_title='Life Expectancy',
    font=dict(family='Arial', size=12, color='black')
)

Dash অ্যাপ্লিকেশন ডিপ্লয় করা

যদি আপনি আপনার ড্যাশবোর্ডটি ক্লাউডে ডিপ্লয় করতে চান, আপনি Heroku বা Dash Deployment Server ব্যবহার করতে পারেন।

  1. Heroku: Dash অ্যাপ Heroku তে ডিপ্লয় করার জন্য আপনার কোড এবং প্রোজেক্ট ফাইলগুলিকে একটি Git রিপোজিটরিতে পুশ করতে হবে, এবং তারপর Heroku এর মাধ্যমে সেটি ডিপ্লয় করা যাবে।
  2. Dash Deployment Server: Dash অফিশিয়াল ডিপ্লয়মেন্ট সার্ভিস ব্যবহার করে আপনি সহজেই Dash অ্যাপস ডিপ্লয় করতে পারেন।

সারাংশ

Dash ফ্রেমওয়ার্ক দিয়ে আপনি খুব সহজে এবং দ্রুত interactive dashboards তৈরি করতে পারেন যেখানে Plotly গ্রাফ ব্যবহার করে ডেটা ভিজুয়ালাইজেশন করা যায়। Dash এর মাধ্যমে আপনি ড্যাশবোর্ডের লেআউট, গ্রাফ এবং ইন্টারেক্টিভ উপাদানগুলো কাস্টমাইজ করে আপনার প্রয়োজনীয় ডেটা বিশ্লেষণ সরঞ্জাম তৈরি করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...