Big Data and Analytics Callback Functions এর মাধ্যমে Real-time Data Interaction গাইড ও নোট

273

Plotly-তে Callback Functions ব্যবহার করে আপনি real-time data interaction তৈরি করতে পারেন। Callback functions ব্যবহার করার মাধ্যমে আপনি ব্যবহারকারীর ইনপুটের উপর ভিত্তি করে ডেটার ভিজুয়ালাইজেশন পরিবর্তন করতে পারবেন। এটি সাধারণত Dash ফ্রেমওয়ার্কের মাধ্যমে করা হয়, যা Plotly এর একটি শক্তিশালী টুল। Dash প্ল্যাটফর্ম ব্যবহার করে আপনি ইন্টারেকটিভ ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন, যেখানে ব্যবহারকারী বিভিন্ন ইনপুট ফিল্ডের মাধ্যমে ডেটার ভিজুয়ালাইজেশন কাস্টমাইজ করতে পারে।


Dash ফ্রেমওয়ার্কের মাধ্যমে Callback Functions ব্যবহার

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

Dash ইনস্টলেশন

pip install dash

Callback Functions এর মাধ্যমে Real-time Data Interaction

Dash-এ callback functions ব্যবহার করে বিভিন্ন ইনপুট এবং আউটপুটের মধ্যে ইন্টারেকশন তৈরি করা হয়। এটি মূলত Input এবং Output ডেকোরেটরের মাধ্যমে কাজ করে। Dash অ্যাপ্লিকেশন কেবলমাত্র যখন ইনপুট পরিবর্তিত হয়, তখন আউটপুট আপডেট হয়।

Dash Callback Function এর উদাহরণ

এখানে একটি Dash অ্যাপ্লিকেশন তৈরি করা হয়েছে যা ব্যবহারকারীর ইনপুটের মাধ্যমে একটি গ্রাফ আপডেট করবে। ব্যবহারকারী slider এর মাধ্যমে ডেটার রেঞ্জ পরিবর্তন করতে পারবে এবং সেই অনুযায়ী গ্রাফ আপডেট হবে।

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

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

# উদাহরণ ডেটাসেট (Plotly-র ভিতর থেকে)
df = px.data.gapminder()

# অ্যাপ্লিকেশন লেআউট
app.layout = html.Div([
    html.H1("Interactive Scatter Plot"),
    
    # Slider: ডেটা পয়েন্টের বছর নির্বাচন করা
    dcc.Slider(
        id='year-slider',
        min=df['year'].min(),
        max=df['year'].max(),
        step=5,
        marks={year: str(year) for year in range(int(df['year'].min()), int(df['year'].max())+1, 5)},
        value=df['year'].min()
    ),
    
    # গ্রাফ দেখানোর জন্য
    dcc.Graph(id='scatter-plot')
])

# Callback Function: ইনপুট হিসেবে বছর নিয়ে আউটপুট হিসেবে গ্রাফ আপডেট করা
@app.callback(
    Output('scatter-plot', 'figure'),
    [Input('year-slider', 'value')]
)
def update_figure(selected_year):
    # নির্বাচিত বছর অনুযায়ী ডেটা ফিল্টার করা
    filtered_df = df[df['year'] == selected_year]
    
    # Scatter Plot তৈরি করা
    fig = px.scatter(filtered_df, x="gdpPercap", y="lifeExp", color="continent", size="pop",
                     hover_name="country", log_x=True, title=f"Year: {selected_year}")
    return fig

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

এখানে:

  • dcc.Slider: এই উপাদানটি ব্যবহারকারীকে বছর নির্বাচন করতে দেয়।
  • Callback function: ব্যবহারকারী year-slider এর মাধ্যমে একটি বছর নির্বাচন করলে, সেই বছর অনুযায়ী ডেটা ফিল্টার হয়ে Scatter Plot আপডেট হবে।
  • Input: Input('year-slider', 'value') ব্যবহারকারীর নির্বাচিত বছর।
  • Output: Output('scatter-plot', 'figure') গ্রাফের আউটপুট।

এভাবে, ব্যবহারকারীর নির্বাচনের উপর ভিত্তি করে গ্রাফের ভ্যালু আপডেট হবে এবং এটি একটি real-time interaction তৈরি করবে।


Callback Functions দিয়ে আরো ইন্টারেকটিভ ফিচার

  • Multiple Inputs and Outputs: একাধিক ইনপুট এবং আউটপুটও সমর্থিত, যেখানে একাধিক ইনপুটের ভিত্তিতে একাধিক আউটপুট আপডেট করা যায়।
  • Multiple Callback Functions: আপনি একাধিক callback function দিয়ে একাধিক উপাদানকে ইন্টারেক্টিভ করতে পারেন।
  • Dynamic Updates: Dash-এ গ্রাফ, টেবিল, বা অন্য যে কোনও উপাদানকে একে অপরের সাথে ইন্টারেক্টিভভাবে আপডেট করা যায়।

সারাংশ

Dash এর মাধ্যমে callback functions ব্যবহার করে আপনি real-time data interaction তৈরি করতে পারেন, যা ব্যবহারকারীকে ইন্টারেক্টিভ ওয়েব অ্যাপ্লিকেশনে ডেটার ভিজুয়ালাইজেশন কাস্টমাইজ করার সুযোগ দেয়। এই ফিচারের মাধ্যমে আপনি গ্রাফ, চার্ট, বা অন্যান্য উপাদানকে ডাইনামিকভাবে আপডেট করতে পারবেন এবং ব্যবহারকারীর ইনপুটের ভিত্তিতে ডেটা পরিবর্তন করতে সক্ষম হবেন। Dash ফ্রেমওয়ার্ক ব্যবহার করে ইন্টারেকটিভ অ্যাপ্লিকেশন তৈরি করা সহজ এবং কার্যকর।

Content added By
Promotion

Are you sure to start over?

Loading...