Layout এবং Components এর জন্য Dash এর ব্যবহার

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

406

Dash হল Plotly দ্বারা তৈরি একটি Python ফ্রেমওয়ার্ক, যা ইন্টারেকটিভ ওয়েব অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়। Dash ব্যবহার করে আপনি Plotly গ্রাফের সাথে কাস্টম লেআউট এবং ইন্টারেকটিভ উপাদান (components) যুক্ত করতে পারেন, যেমন ড্রপডাউন, স্লাইডার, বোতাম এবং আরও অনেক কিছু। Dash এর সাহায্যে আপনি সহজেই web-based dashboards এবং data visualization apps তৈরি করতে পারেন।


Dash এর উপাদান

Dash অ্যাপ্লিকেশন সাধারণত দুটি অংশে বিভক্ত থাকে:

  1. Layout: যেখানে আপনি অ্যাপ্লিকেশনের ভিজুয়াল উপাদান (যেমন গ্রাফ, টেক্সট, ইন্টারেকটিভ উইজেট) ডিজাইন করেন।
  2. Components: Dash কম্পোনেন্টস হল বিভিন্ন ইন্টারেকটিভ উপাদান, যেমন গ্রাফ, ড্রপডাউন, স্লাইডার, বোতাম, টেবিল ইত্যাদি।

Dash Layout এবং Components এর উদাহরণ

নিচে একটি Dash অ্যাপ্লিকেশন তৈরির উদাহরণ দেওয়া হলো যেখানে একটি Scatter Plot ব্যবহার করা হয়েছে, এবং একটি Dropdown এবং Slider দিয়ে ইন্টারেকটিভ কন্ট্রোল যুক্ত করা হয়েছে।

উদাহরণ: Dash অ্যাপ্লিকেশন তৈরি করা

import dash
from dash import dcc, html
import plotly.express as px
import plotly.graph_objects as go
from dash.dependencies import Input, Output

# Dash অ্যাপ্লিকেশন তৈরি করা
app = dash.Dash(__name__)

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

# Layout তৈরি করা
app.layout = html.Div([
    # টাইটেল
    html.H1("Gapminder Data Visualization"),
    
    # ড্রপডাউন কম্পোনেন্ট
    dcc.Dropdown(
        id='continent-dropdown',
        options=[
            {'label': 'Africa', 'value': 'Africa'},
            {'label': 'Americas', 'value': 'Americas'},
            {'label': 'Asia', 'value': 'Asia'},
            {'label': 'Europe', 'value': 'Europe'},
            {'label': 'Oceania', 'value': 'Oceania'}
        ],
        value='Asia'  # ডিফল্ট মান
    ),
    
    # স্লাইডার কম্পোনেন্ট
    dcc.Slider(
        id='year-slider',
        min=df['year'].min(),
        max=df['year'].max(),
        value=df['year'].max(),
        marks={year: str(year) for year in range(int(df['year'].min()), int(df['year'].max())+1, 5)},
        step=1
    ),
    
    # গ্রাফ
    dcc.Graph(id='scatter-plot')
])

# Callback ফাংশন
@app.callback(
    Output('scatter-plot', 'figure'),
    [Input('continent-dropdown', 'value'),
     Input('year-slider', 'value')]
)
def update_graph(selected_continent, selected_year):
    # ডেটা ফিল্টার করা
    filtered_df = df[(df['continent'] == selected_continent) & (df['year'] == selected_year)]
    
    # গ্রাফ তৈরি করা
    fig = px.scatter(filtered_df, x="gdpPercap", y="lifeExp", color="country", 
                     size="pop", hover_name="country", log_x=True, title=f"{selected_continent} - {selected_year}")
    
    return fig

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

ব্যাখ্যা:

  1. Layout:
    • html.Div: Dash অ্যাপ্লিকেশনের মূল কন্টেইনার। এখানে আমরা ড্রপডাউন, স্লাইডার, এবং গ্রাফ উপাদানগুলো রাখতে পারি।
    • html.H1: টাইটেল প্রদর্শন করা।
    • dcc.Dropdown: একটি ড্রপডাউন উইজেট, যার মাধ্যমে ইউজার মহাদেশ নির্বাচন করতে পারেন।
    • dcc.Slider: একটি স্লাইডার উইজেট, যার মাধ্যমে ইউজার বছর নির্বাচন করতে পারেন।
    • dcc.Graph: এখানে গ্রাফ বা চিত্র প্রদর্শিত হবে।
  2. Components:
    • Dropdown: dcc.Dropdown ব্যবহার করে আমরা ইউজারের জন্য একটি ড্রপডাউন তৈরি করেছি, যার মাধ্যমে তারা মহাদেশ নির্বাচন করতে পারে।
    • Slider: dcc.Slider ব্যবহার করে আমরা ইউজারকে বছরের স্লাইডার দিয়ে নির্বাচন করার সুযোগ দিয়েছি।
    • Graph: dcc.Graph ব্যবহার করে আমরা গ্রাফ প্রদর্শন করি যা Plotly গ্রাফের সাহায্যে ইন্টারেকটিভ।
  3. Callback:
    • @app.callback: এই ফাংশনটি Dash অ্যাপ্লিকেশনে ইন্টারেক্টিভিটি যোগ করে। এটি ইউজারের ইনপুটের ভিত্তিতে গ্রাফকে রেন্ডার করে। এখানে দুটি ইনপুট (Dropdown এবং Slider) এবং একটি আউটপুট (Graph) রয়েছে।
    • Input: ইউজারের নির্বাচিত মান নেয়।
    • Output: গ্রাফের ফিগার আপডেট করে।

Dash এর অন্যান্য Components

Dash আরও অনেক ইন্টারেকটিভ কম্পোনেন্ট প্রদান করে যা আপনার অ্যাপ্লিকেশনের লেআউটকে আরও উন্নত এবং ইউজার-বান্ধব করে তুলতে সাহায্য করে। এর মধ্যে রয়েছে:

  • dcc.Graph: প্লটলি গ্রাফ এবং চিত্র প্রদর্শন করতে ব্যবহৃত হয়।
  • dcc.Dropdown: একটি ড্রপডাউন উইজেট যা ইউজারের পছন্দ নির্বাচনের জন্য ব্যবহৃত হয়।
  • dcc.Slider: স্লাইডার উইজেট যা একটি রেঞ্জ থেকে মান নির্বাচন করতে ব্যবহৃত হয়।
  • dcc.Input: ইনপুট ফিল্ড যেখানে ইউজার টেক্সট বা নম্বর ইনপুট করতে পারে।
  • dcc.Checklist: একাধিক বিকল্প নির্বাচন করার জন্য একটি চেকলিস্ট।
  • dcc.RadioItems: একাধিক বিকল্প থেকে একটি নির্বাচন করার জন্য রেডিও বোতাম।
  • html.Div: HTML ট্যাগের মতো সাধারণ কন্টেইনার যা লেআউট ডিজাইন করতে ব্যবহৃত হয়।

Dash এর জন্য লেআউট কাস্টমাইজেশন

Dash এর মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনের লেআউট সহজেই কাস্টমাইজ করতে পারেন। আপনি CSS ব্যবহার করে অ্যাপের ডিজাইন এবং লেআউট স্টাইল করতে পারেন, যেমন:

  • কলাম, গ্রিড, মার্জিন, প্যাডিং, ফন্ট স্টাইল ইত্যাদি কাস্টমাইজ করা।
  • Responsive Design তৈরি করা, যাতে অ্যাপটি বিভিন্ন ডিভাইসে সঠিকভাবে প্রদর্শিত হয়।

সারাংশ

Plotly তে Dash একটি শক্তিশালী ফ্রেমওয়ার্ক যা আপনাকে ইন্টারেকটিভ ওয়েব অ্যাপ্লিকেশন এবং ডেটা ভিজুয়ালাইজেশন তৈরি করতে সাহায্য করে। Dash এর মাধ্যমে আপনি Plotly গ্রাফের সাথে লেআউট এবং বিভিন্ন ইন্টারেকটিভ কম্পোনেন্ট (যেমন Dropdown, Slider, Button, Graph) যোগ করতে পারেন, যা আপনার অ্যাপ্লিকেশনকে আরও ইউজার-বান্ধব এবং ডাইনামিক করে তোলে। Dash ব্যবহার করে আপনি খুব সহজেই ড্যাশবোর্ড এবং ডেটা-ভিত্তিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...