Time series data (টাইম সিরিজ ডেটা) হল এমন একটি ডেটাসেট যা সময়ের সাথে পরিবর্তিত হয় এবং সাধারণত এটি ধারাবাহিকভাবে সংগ্রহ করা হয়, যেমন দৈনিক, সাপ্তাহিক, বা মাসিক পরিসংখ্যান। Plotly ব্যবহার করে টাইম সিরিজ ডেটা ভিজুয়ালাইজেশন করা খুবই সহজ এবং কার্যকরী। Plotly এর শক্তিশালী ফিচারগুলো, যেমন: ইন্টারেকটিভিটি এবং কাস্টমাইজেশন, টাইম সিরিজ ডেটাকে আরও সহজে এবং বিস্তারিতভাবে বিশ্লেষণ করতে সাহায্য করে।
Time Series Data Visualize করার জন্য প্রয়োজনীয় প্রস্তুতি
টাইম সিরিজ ডেটা ভিজুয়ালাইজেশন করার আগে, আপনার ডেটা অবশ্যই টাইম স্ট্যাম্প বা তারিখের ভিত্তিতে সংগঠিত থাকতে হবে। সাধারণত Pandas লাইব্রেরি ব্যবহার করে টাইম সিরিজ ডেটা প্রস্তুত করা হয়।
টাইম সিরিজ ডেটা প্রস্তুত
import pandas as pd
import plotly.express as px
# উদাহরণ ডেটা
data = {
'Date': pd.date_range(start='2020-01-01', periods=10, freq='D'),
'Value': [100, 120, 110, 130, 140, 125, 150, 160, 170, 180]
}
df = pd.DataFrame(data)
# টাইম সিরিজ ডেটার প্রিন্ট
print(df)
এই ডেটাতে প্রতিদিনের তারিখ এবং তার সাথে সংশ্লিষ্ট মান (Value) আছে, যা আমরা টাইম সিরিজ ডেটা ভিজুয়ালাইজেশনে ব্যবহার করব।
টাইম সিরিজ ডেটা ভিজুয়ালাইজেশন
১. লাইনের মাধ্যমে টাইম সিরিজ গ্রাফ
টাইম সিরিজ ডেটাকে সাধারণত লাইন গ্রাফের মাধ্যমে ভিজুয়ালাইজ করা হয়, যেখানে x-অক্ষ থাকবে সময় (Date) এবং y-অক্ষ থাকবে মান (Value)। Plotly Express এর মাধ্যমে এটি খুব সহজে তৈরি করা যায়।
# টাইম সিরিজ ডেটা ভিজুয়ালাইজেশন (লাইন চার্ট)
fig = px.line(df, x='Date', y='Value', title='Time Series Data Visualization')
fig.show()
এই কোডটি একটি সরল লাইন চার্ট তৈরি করবে, যেখানে x-অক্ষ হচ্ছে তারিখ এবং y-অক্ষ হচ্ছে মান।
২. সাবটাইটেল এবং গ্রিডলাইন কাস্টমাইজেশন
আপনি টাইম সিরিজ গ্রাফের সাবটাইটেল, গ্রিডলাইন এবং অন্যান্য সেটিংস কাস্টমাইজ করতে পারেন, যেমনঃ
fig.update_layout(
title='Customized Time Series Visualization',
title_x=0.5, # টাইটেল অবস্থান
xaxis_title='Date',
yaxis_title='Value',
xaxis=dict(showgrid=True, gridcolor='lightgray'),
yaxis=dict(showgrid=True, gridcolor='lightgray')
)
fig.show()
এটি টাইটেল, সাবটাইটেল এবং গ্রিডলাইন কাস্টমাইজ করবে, যা গ্রাফের উপস্থাপনাকে আরও স্পষ্ট এবং সহজবোধ্য করবে।
৩. স্ট্যাকড টাইম সিরিজ (Stacked Time Series)
যখন একাধিক টাইম সিরিজ ডেটা থাকে এবং তাদের মধ্যে তুলনা করা হয়, তখন স্ট্যাকড লাইন গ্রাফ ব্যবহার করা হয়। এতে একাধিক লাইন একসাথে উপস্থাপন করা হয়, যা ডেটার মধ্যে সম্পর্ক বা ট্রেন্ড পরিষ্কারভাবে দেখায়।
# একাধিক টাইম সিরিজ ডেটা
df2 = pd.DataFrame({
'Date': pd.date_range(start='2020-01-01', periods=10, freq='D'),
'Value1': [100, 120, 130, 140, 150, 160, 170, 180, 190, 200],
'Value2': [50, 60, 55, 65, 70, 75, 80, 85, 90, 95]
})
# স্ট্যাকড টাইম সিরিজ
fig = px.line(df2, x='Date', y=['Value1', 'Value2'], title='Stacked Time Series')
fig.show()
এটি দুটি আলাদা টাইম সিরিজ ডেটার স্ট্যাকড লাইন গ্রাফ তৈরি করবে, যা তাদের তুলনামূলক বিশ্লেষণ করতে সাহায্য করবে।
৪. ইন্টারেকটিভ রেঞ্জ স্লাইডার (Interactive Range Slider)
Plotly তে টাইম সিরিজ গ্রাফের উপর রেঞ্জ স্লাইডার যোগ করা সম্ভব, যা ব্যবহারকারীদের একটি নির্দিষ্ট সময়সীমা দেখতে সাহায্য করে।
fig.update_layout(
xaxis=dict(
rangeslider=dict(visible=True), # রেঞ্জ স্লাইডার যুক্ত করা
type='date'
)
)
fig.show()
এটি x-অক্ষের নিচে একটি রেঞ্জ স্লাইডার যোগ করবে, যা ব্যবহারকারীকে টাইম সিরিজের একটি নির্দিষ্ট অংশ দেখতে সহায়তা করবে।
৫. টাইম সিরিজ ডেটার মৌলিক বিশ্লেষণ
Plotly তে আপনি টাইম সিরিজ ডেটার মৌলিক বিশ্লেষণ যেমন চলমান গড় (Moving Average) বা ট্রেন্ড লাইনও যোগ করতে পারেন।
# ৭ দিনের চলমান গড় হিসাব
df['Moving_Avg'] = df['Value'].rolling(window=7).mean()
# চলমান গড় সহ টাইম সিরিজ
fig = px.line(df, x='Date', y=['Value', 'Moving_Avg'], title='Time Series with Moving Average')
fig.show()
এটি টাইম সিরিজ গ্রাফে মূল ডেটার পাশাপাশি চলমান গড় দেখাবে, যা ট্রেন্ডের ধারণা দিতে সহায়তা করবে।
সারাংশ
Plotly দিয়ে টাইম সিরিজ ডেটা ভিজুয়ালাইজেশন খুবই সহজ এবং ইন্টারেকটিভ। আপনি লাইনের মাধ্যমে টাইম সিরিজ দেখাতে পারেন, তারিখের ভিত্তিতে গ্রাফ কাস্টমাইজ করতে পারেন, একাধিক টাইম সিরিজের তুলনা করতে স্ট্যাকড গ্রাফ ব্যবহার করতে পারেন এবং বিভিন্ন ইন্টারেকটিভ ফিচার যোগ করে ব্যবহারকারীদের জন্য আরও কার্যকরী ডেটা ভিজুয়ালাইজেশন তৈরি করতে পারেন। Plotly এর শক্তিশালী কাস্টমাইজেশন এবং ইন্টারেকটিভ ফিচারগুলো টাইম সিরিজ ডেটা বিশ্লেষণে নতুন মাত্রা যোগ করে।
Time Series Data (সময়ক্রমিক ডেটা) হল এমন ডেটা যা সময়ের সাথে সম্পর্কিত থাকে, যেমন স্টক মার্কেটের মূল্য, আবহাওয়া পরিবর্তন, বা কোনো নির্দিষ্ট পণ্যের বিক্রি। Plotly এর মাধ্যমে আপনি সহজেই সময়ক্রমিক ডেটা ভিজুয়ালাইজ করতে পারেন, যা আপনাকে ট্রেন্ড এবং প্যাটার্নগুলি বোঝাতে সাহায্য করে।
Plotly-তে সময়ক্রমিক ডেটা ভিজুয়ালাইজ করার জন্য সাধারণত Line Chart বা Scatter Plot ব্যবহার করা হয়, যেখানে x-অক্ষটি সময় এবং y-অক্ষটি ডেটার পরিমাণ নির্দেশ করে।
১. Time Series Data Visualization (Line Chart)
Plotly তে Line Chart তৈরি করতে আপনি সময়ক্রমিক ডেটাকে x-অক্ষে এবং পরিমাপ বা মানকে y-অক্ষে রেখেই সহজভাবে একটি লাইন চার্ট তৈরি করতে পারেন। এটি ট্রেন্ড বা সময়ের সাথে ডেটার পরিবর্তন দেখানোর জন্য উপযুক্ত।
উদাহরণ: Time Series Data Line Chart
import plotly.graph_objects as go
import pandas as pd
# উদাহরণ ডেটাসেট তৈরি
data = {'Date': pd.date_range(start='2020-01-01', periods=100, freq='D'),
'Value': [x**0.5 for x in range(100)]}
df = pd.DataFrame(data)
# Line chart তৈরি
fig = go.Figure(data=[go.Scatter(x=df['Date'], y=df['Value'], mode='lines', name='Value over Time')])
# গ্রাফ কাস্টমাইজেশন
fig.update_layout(
title="Time Series Line Chart",
xaxis_title='Date',
yaxis_title='Value',
xaxis=dict(tickformat='%Y-%m-%d', tickangle=45)
)
# গ্রাফ প্রদর্শন
fig.show()
এখানে, Date কলামটি x-অক্ষ হিসেবে এবং Value কলামটি y-অক্ষ হিসেবে ব্যবহৃত হয়েছে। go.Scatter ফাংশনটি দিয়ে আমরা লাইন চার্ট তৈরি করেছি, যেখানে mode='lines' দ্বারা লাইন টাইপ নির্ধারণ করা হয়েছে।
২. Time Series Data Visualization (Scatter Plot)
Scatter Plot ব্যবহার করে আপনি সময়ের সাথে সাথে ডেটার পয়েন্টগুলো দেখতে পারেন। যদিও লাইন চার্ট ডেটার ধারাবাহিকতা দেখায়, স্ক্যাটার প্লটটি পৃথক পৃথক পয়েন্টকে প্রদর্শন করে যা ডেটার প্যাটার্ন দেখাতে সহায়তা করে।
উদাহরণ: Time Series Data Scatter Plot
import plotly.express as px
import pandas as pd
# উদাহরণ ডেটাসেট তৈরি
data = {'Date': pd.date_range(start='2020-01-01', periods=100, freq='D'),
'Value': [x**0.5 for x in range(100)]}
df = pd.DataFrame(data)
# Scatter plot তৈরি
fig = px.scatter(df, x='Date', y='Value', title="Time Series Scatter Plot")
# গ্রাফ প্রদর্শন
fig.show()
এখানে, px.scatter ব্যবহার করে আমরা Scatter Plot তৈরি করেছি, যেখানে প্রতিটি ডেটা পয়েন্ট পৃথকভাবে দেখানো হচ্ছে। এই গ্রাফটি প্যাটার্ন বিশ্লেষণের জন্য উপযোগী।
৩. Multiple Time Series Comparison
যদি একাধিক সময়ক্রমিক ডেটা সিরিজ থাকে, তবে Plotly তে আপনি একাধিক সিরিজ একসাথে প্রদর্শন করতে পারেন। এটি একাধিক ডেটাসেটের তুলনা করতে সহায়তা করে।
উদাহরণ: Multiple Time Series Line Chart
import plotly.graph_objects as go
import pandas as pd
# উদাহরণ ডেটাসেট তৈরি
data = {'Date': pd.date_range(start='2020-01-01', periods=100, freq='D'),
'Value_1': [x**0.5 for x in range(100)],
'Value_2': [x**0.7 for x in range(100)]}
df = pd.DataFrame(data)
# Multiple Line chart তৈরি
fig = go.Figure()
# প্রথম সিরিজ
fig.add_trace(go.Scatter(x=df['Date'], y=df['Value_1'], mode='lines', name='Value 1'))
# দ্বিতীয় সিরিজ
fig.add_trace(go.Scatter(x=df['Date'], y=df['Value_2'], mode='lines', name='Value 2'))
# গ্রাফ কাস্টমাইজেশন
fig.update_layout(
title="Multiple Time Series Comparison",
xaxis_title='Date',
yaxis_title='Value',
xaxis=dict(tickformat='%Y-%m-%d', tickangle=45)
)
# গ্রাফ প্রদর্শন
fig.show()
এখানে, আমরা দুটি আলাদা সময়ক্রমিক ডেটা সিরিজ (Value_1 এবং Value_2) একসাথে দেখিয়েছি। দুটি লাইন একই সময়কাল ধরে ডেটার পরিবর্তনকে তুলনা করছে।
৪. Time Series with Annotations
Annotations ব্যবহার করে আপনি নির্দিষ্ট সময় বা পয়েন্টে বিশেষ মন্তব্য বা ইভেন্ট প্রদর্শন করতে পারেন। এটি গ্রাফের মধ্যে গুরুত্বপূর্ণ তথ্য বা ঘটনার ওপর নজর দিতে সাহায্য করে।
উদাহরণ: Time Series with Annotations
import plotly.graph_objects as go
import pandas as pd
# উদাহরণ ডেটাসেট তৈরি
data = {'Date': pd.date_range(start='2020-01-01', periods=100, freq='D'),
'Value': [x**0.5 for x in range(100)]}
df = pd.DataFrame(data)
# Line chart তৈরি
fig = go.Figure(data=[go.Scatter(x=df['Date'], y=df['Value'], mode='lines', name='Value over Time')])
# Annotation যোগ করা
fig.add_annotation(
x=pd.to_datetime('2020-02-01'),
y=5,
text="Important Event",
showarrow=True,
arrowhead=2
)
# গ্রাফ কাস্টমাইজেশন
fig.update_layout(
title="Time Series with Annotations",
xaxis_title='Date',
yaxis_title='Value',
xaxis=dict(tickformat='%Y-%m-%d', tickangle=45)
)
# গ্রাফ প্রদর্শন
fig.show()
এখানে, add_annotation ফাংশন দিয়ে আমরা একটি নির্দিষ্ট তারিখের ওপর একটি অ্যানোটেশন যোগ করেছি, যেখানে একটি গুরুত্বপূর্ণ ইভেন্ট বা তথ্য দেখানো হচ্ছে।
সারাংশ
Plotly দিয়ে Time Series Data ভিজুয়ালাইজেশন করা খুবই সহজ এবং ইন্টারেকটিভ। আপনি Line Chart, Scatter Plot, এবং Multiple Time Series Comparison সহ আরও অনেক ধরনের গ্রাফ তৈরি করতে পারেন। Plotly এর এই ফিচারগুলো ব্যবহার করে সময়ক্রমিক ডেটার বিশ্লেষণ, ট্রেন্ড, প্যাটার্ন এবং গুরুত্বপূর্ণ তথ্য উপস্থাপন করা অনেক সহজ। Annotations এবং Interactive Features ব্যবহার করে আপনি সময়ের সাথে ডেটার পরিবর্তনকে আরও বিস্তারিত এবং প্রাসঙ্গিকভাবে উপস্থাপন করতে পারবেন।
Time Series Data হল এমন ধরনের ডেটা যা নির্দিষ্ট সময়ের মধ্যে পরিবর্তনশীলতা দেখায়, যেমন: দিনের, মাসের বা বছরের নির্দিষ্ট সময়ের মধ্যে বিভিন্ন পরিসংখ্যান। Plotly ব্যবহার করে আপনি সহজেই Line এবং Area Charts এ Time Series Data ভিজুয়ালাইজ করতে পারেন, যা ডেটার প্রবণতা বা ট্রেন্ড বুঝতে সহায়তা করে।
এখানে Line Chart এবং Area Chart এর মধ্যে Time Series Data কিভাবে যোগ করা যায় তা নিয়ে আলোচনা করা হবে।
১. Line Chart এ Time Series Data যোগ করা
Line chart একটি গ্রাফ যেখানে সময়ের সাথে সাথে ডেটার পরিবর্তন একটি সোজা লাইনের মাধ্যমে দেখানো হয়। Time Series Data বিশ্লেষণে এটি অন্যতম জনপ্রিয় ভিজুয়ালাইজেশন টুল।
উদাহরণ:
import plotly.graph_objects as go
import pandas as pd
# Time Series Data তৈরি
data = {
'Date': pd.date_range(start='2022-01-01', periods=100, freq='D'),
'Value': [i + (i * 0.1) for i in range(100)] # সাধারণ হিসেব
}
# pandas DataFrame এ রূপান্তর
df = pd.DataFrame(data)
# Line Chart তৈরি
fig = go.Figure()
fig.add_trace(go.Scatter(
x=df['Date'], # Time Series data
y=df['Value'], # Value
mode='lines', # লাইন মোড
name='Value over Time' # লাইন লেবেল
))
# গ্রাফ কাস্টমাইজেশন
fig.update_layout(
title="Time Series Line Chart",
xaxis_title="Date",
yaxis_title="Value",
template="plotly_dark" # আঙ্গিক কাস্টমাইজেশন
)
fig.show()
ব্যাখ্যা:
pd.date_range: এটি pandas এর একটি ফাংশন যা সময়ের সিরিজ তৈরি করতে সাহায্য করে। এখানে 100 দিনের সময়সীমা তৈরি করা হয়েছে।go.Scatter: এটি প্লটলি লাইনে ডেটা পয়েন্ট যোগ করতে ব্যবহৃত হয়।mode='lines'দিয়ে লাইন চার্ট তৈরি করা হয়েছে।
২. Area Chart এ Time Series Data যোগ করা
Area Chart, Line Chart এর মতোই কাজ করে, তবে এতে লাইনটির নিচে একটি আচ্ছাদিত এলাকা থাকে, যা ডেটার সঞ্চিত মান বা মোট ভলিউম প্রদর্শন করে।
উদাহরণ:
import plotly.graph_objects as go
import pandas as pd
# Time Series Data তৈরি
data = {
'Date': pd.date_range(start='2022-01-01', periods=100, freq='D'),
'Value': [i + (i * 0.1) for i in range(100)] # সাধারণ হিসেব
}
# pandas DataFrame এ রূপান্তর
df = pd.DataFrame(data)
# Area Chart তৈরি
fig = go.Figure()
fig.add_trace(go.Scatter(
x=df['Date'], # Time Series data
y=df['Value'], # Value
mode='none', # শুধু এলাকা পূর্ণ হবে, লাইন নয়
fill='tozeroy', # নিচে এলাকা পূর্ণ করা
name='Value over Time' # এলাকা লেবেল
))
# গ্রাফ কাস্টমাইজেশন
fig.update_layout(
title="Time Series Area Chart",
xaxis_title="Date",
yaxis_title="Value",
template="plotly_dark" # আঙ্গিক কাস্টমাইজেশন
)
fig.show()
ব্যাখ্যা:
mode='none': এখানে লাইনটি দেখানো হবে না, কেবল মাত্র এলাকা পূর্ণ হবে।fill='tozeroy': এটি লাইনটির নিচে এলাকা পূর্ণ করে এবং গ্রাফের বেসলাইন (০) পর্যন্ত পৌঁছায়।
৩. Time Series Data এর সাথে অতিরিক্ত কাস্টমাইজেশন
Time Series Data সহ Line এবং Area Chart এর কাস্টমাইজেশন অনেক সুবিধা প্রদান করে। যেমন:
- Date Format: আপনি x-axis এ সময়ের ফরম্যাট পরিবর্তন করতে পারেন।
- Hover Data: আপনি hover করার সময় আরও বিস্তারিত তথ্য প্রদর্শন করতে পারেন।
- Multiple Time Series: একাধিক টাইম সিরিজের মধ্যে তুলনা করতে একাধিক লাইন বা এরিয়া যোগ করা যায়।
উদাহরণ - Multiple Time Series
import plotly.graph_objects as go
import pandas as pd
# Time Series Data তৈরি
data1 = {
'Date': pd.date_range(start='2022-01-01', periods=100, freq='D'),
'Value1': [i + (i * 0.1) for i in range(100)] # প্রথম সিরিজ
}
data2 = {
'Date': pd.date_range(start='2022-01-01', periods=100, freq='D'),
'Value2': [i + (i * 0.05) for i in range(100)] # দ্বিতীয় সিরিজ
}
# pandas DataFrame এ রূপান্তর
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
# Multiple Line Chart তৈরি
fig = go.Figure()
fig.add_trace(go.Scatter(
x=df1['Date'], # Time Series data
y=df1['Value1'], # Value1
mode='lines', # লাইন মোড
name='Value 1 over Time'
))
fig.add_trace(go.Scatter(
x=df2['Date'], # Time Series data
y=df2['Value2'], # Value2
mode='lines', # লাইন মোড
name='Value 2 over Time'
))
# গ্রাফ কাস্টমাইজেশন
fig.update_layout(
title="Multiple Time Series Line Chart",
xaxis_title="Date",
yaxis_title="Value",
template="plotly_dark" # আঙ্গিক কাস্টমাইজেশন
)
fig.show()
সারাংশ
Plotly তে Line Chart এবং Area Chart তে Time Series Data যোগ করা খুবই সহজ এবং কার্যকরী। Line Chart সময়ের সাথে ডেটার পরিবর্তন দেখাতে সাহায্য করে, আর Area Chart অতিরিক্তভাবে ডেটার সঞ্চিত পরিমাণ বা মোট ভলিউম উপস্থাপন করে। আপনি সহজেই Time Series Data দিয়ে এই গ্রাফগুলো তৈরি করতে পারেন এবং বিভিন্ন কাস্টমাইজেশন সহ ডেটার ট্রেন্ড বা প্রবণতা বিশ্লেষণ করতে পারেন।
Plotly ব্যবহার করে আপনি ডেটা ভিজুয়ালাইজেশনে Date Axes এবং Time Formatting কাস্টমাইজ করতে পারেন। টাইম সিরিজ ডেটা বা ডেটার সাথে সময় সংক্রান্ত তথ্য উপস্থাপন করতে Plotly-তে Date এবং Time axes ব্যবহার করা হয়। Plotly আপনাকে টাইমফ্রেম এবং ফরম্যাটিং কাস্টমাইজেশনের জন্য বিভিন্ন উপায় দেয়, যা ডেটার স্পষ্ট উপস্থাপনা এবং বিশ্লেষণের জন্য সহায়ক।
Date Axes তৈরি করা
Plotly-তে Date Axes তৈরি করতে xaxis বা yaxis প্রপার্টি ব্যবহার করা হয়, যেখানে আপনি সময় বা তারিখের ডেটা রাখতে পারেন। Plotly স্বয়ংক্রিয়ভাবে সময় অনুযায়ী স্কেলিং এবং ফরম্যাটিং করে, তবে আপনি চাইলে সেটি কাস্টমাইজও করতে পারেন।
Example: Basic Date Axis
import plotly.graph_objects as go
import pandas as pd
# ডেটাসেট তৈরি
dates = pd.date_range('2024-01-01', periods=5, freq='D')
values = [10, 11, 12, 13, 14]
# গ্রাফ তৈরি
fig = go.Figure(data=go.Scatter(x=dates, y=values, mode='lines'))
# গ্রাফ প্রদর্শন
fig.show()
এখানে, x অক্ষের মান গুলি DateTime হিসেবে দেওয়া হয়েছে এবং Plotly স্বয়ংক্রিয়ভাবে ডেটা অনুযায়ী এক্স-অক্ষের স্কেল তৈরি করেছে।
Date Axes কাস্টমাইজ করা
Plotly তে আপনি Date Axes কাস্টমাইজ করতে পারেন, যেমন টাইমফ্রেম, স্কেল, এবং ফরম্যাটিং পরিবর্তন করা। আপনি বিভিন্ন টাইমফ্রেম যেমন মাস, দিন, বছর ইত্যাদি ব্যবহার করতে পারেন এবং ফরম্যাটিং কাস্টমাইজ করতে পারেন।
Example: Date Axis কাস্টমাইজ করা
import plotly.graph_objects as go
import pandas as pd
# ডেটাসেট তৈরি
dates = pd.date_range('2024-01-01', periods=5, freq='D')
values = [10, 11, 12, 13, 14]
# গ্রাফ তৈরি এবং x-axis কাস্টমাইজ করা
fig = go.Figure(data=go.Scatter(x=dates, y=values, mode='lines'))
fig.update_layout(
xaxis=dict(
tickformat="%b %d, %Y", # টাইমফ্রেম কাস্টমাইজ করা (মাস, দিন, বছর)
title='Date'
),
title='Date Axis with Custom Format'
)
# গ্রাফ প্রদর্শন
fig.show()
এখানে tickformat="%b %d, %Y" দিয়ে x-অক্ষের তারিখের ফরম্যাট কাস্টমাইজ করা হয়েছে, যেখানে:
%b: মাসের সংক্ষিপ্ত নাম (যেমন Jan, Feb, Mar)%d: দিন%Y: বছর
আপনি Plotly-তে আরও অনেক টাইমফর্ম্যাট ব্যবহার করতে পারেন, যেমন:
%a: সপ্তাহের দিন (Sun, Mon, Tue)%H: ঘণ্টা%M: মিনিট%S: সেকেন্ড
Time Formatting Techniques
Plotly-তে Time Formatting করা সহজ এবং আপনি বিভিন্ন ফরম্যাটে সময় উপস্থাপন করতে পারেন, বিশেষ করে টাইম সিরিজ ডেটা বিশ্লেষণের ক্ষেত্রে।
Example: Time Formatting with Different Units
import plotly.graph_objects as go
import pandas as pd
# ডেটাসেট তৈরি
dates = pd.date_range('2024-01-01 12:00', periods=5, freq='H')
values = [10, 11, 12, 13, 14]
# গ্রাফ তৈরি
fig = go.Figure(data=go.Scatter(x=dates, y=values, mode='lines'))
fig.update_layout(
xaxis=dict(
tickformat="%H:%M:%S", # ঘণ্টা:মিনিট:সেকেন্ড
title='Time'
),
title='Time Axis with Custom Format'
)
# গ্রাফ প্রদর্শন
fig.show()
এখানে, tickformat="%H:%M:%S" দিয়ে ঘণ্টা:মিনিট:সেকেন্ড ফরম্যাটে সময় প্রদর্শন করা হয়েছে।
Date Range Filters এবং Zooming
Plotly তে ডেটা প্রদর্শনের জন্য আপনি Date Range Filters এবং Zooming ফিচার ব্যবহার করতে পারেন। এটি ব্যবহারকারীকে নির্দিষ্ট সময়সীমার মধ্যে ডেটা দেখতে সাহায্য করে। Plotly-তে এই ফিচারগুলো ডিফল্টভাবে এনাবল করা থাকে, তবে আপনি চাইলে এগুলিকে কাস্টমাইজ করতে পারেন।
Example: Date Range Zooming
import plotly.graph_objects as go
import pandas as pd
# ডেটাসেট তৈরি
dates = pd.date_range('2024-01-01', periods=50, freq='D')
values = [i for i in range(50)]
# গ্রাফ তৈরি
fig = go.Figure(data=go.Scatter(x=dates, y=values, mode='lines'))
fig.update_layout(
title="Date Range Zooming",
xaxis=dict(
rangeslider=dict(visible=True), # রেঞ্জ স্লাইডার
type='date'
)
)
# গ্রাফ প্রদর্শন
fig.show()
এখানে rangeslider=dict(visible=True) দিয়ে Date Range Slider সক্রিয় করা হয়েছে, যা ব্যবহারকারীদের টাইমসিরিজ গ্রাফের মধ্যে জুম ইন বা আউট করতে সাহায্য করে।
Zoom Level এবং Date Format কাস্টমাইজেশন
Plotly তে Zoom এবং Date Format কাস্টমাইজ করার জন্য rangeselector এবং tickformat ব্যবহার করা যায়। rangeselector ব্যবহারকারীদের নির্দিষ্ট সময়সীমা সিলেক্ট করতে সাহায্য করে, যেমন "1 week", "1 month", "1 year" ইত্যাদি।
Example: Zoom Level কাস্টমাইজ করা
import plotly.graph_objects as go
import pandas as pd
# ডেটাসেট তৈরি
dates = pd.date_range('2024-01-01', periods=100, freq='D')
values = [i for i in range(100)]
# গ্রাফ তৈরি
fig = go.Figure(data=go.Scatter(x=dates, y=values, mode='lines'))
fig.update_layout(
title="Zoom and Date Format Example",
xaxis=dict(
rangeslider=dict(visible=True),
rangeselector=dict(
buttons=list([
dict(count=1, label="1m", step="month", stepmode="backward"),
dict(count=3, label="3m", step="month", stepmode="backward"),
dict(count=6, label="6m", step="month", stepmode="backward"),
dict(count=1, label="1y", step="year", stepmode="backward"),
dict(step="all")
])
),
type="date"
),
yaxis=dict(title="Values")
)
# গ্রাফ প্রদর্শন
fig.show()
এখানে Zoom Level কাস্টমাইজ করা হয়েছে, যেখানে ব্যবহারকারী 1 মাস, 3 মাস, 6 মাস, বা 1 বছর পরিসীমায় ডেটা দেখতে পারে। rangeselector ব্যবহার করে এ ধরনের কন্ট্রোল যোগ করা হয়েছে।
সারাংশ
Plotly তে Date Axes এবং Time Formatting techniques ডেটা ভিজুয়ালাইজেশনের ক্ষেত্রে অত্যন্ত গুরুত্বপূর্ণ, বিশেষ করে যখন আপনি টাইম সিরিজ ডেটা বিশ্লেষণ করছেন। আপনি tickformat, rangeslider, rangeselector ইত্যাদি ব্যবহার করে টাইমফ্রেম এবং সময় ফরম্যাট কাস্টমাইজ করতে পারেন। এটি আপনাকে সময়ের সঙ্গে পরিবর্তিত ডেটা স্পষ্টভাবে উপস্থাপন করতে সাহায্য করে এবং ব্যবহারকারীদের জন্য ইন্টারেক্টিভ অভিজ্ঞতা প্রদান করে।
Time series ডেটা হলো এমন ডেটা যা নির্দিষ্ট সময়ের মধ্যে পরবর্তী মান বা ঘটনা সম্পর্কে তথ্য প্রদান করে। Plotly তে টাইম সিরিজ ডেটার জন্য ইন্টারেকটিভ ফিচার যোগ করা খুবই সহজ, যা ব্যবহারকারীদের ডেটা বিশ্লেষণে আরও কার্যকরীভাবে সহায়তা করে। টাইম সিরিজ ডেটা বিশ্লেষণের জন্য বিভিন্ন ইন্টারেকটিভ ফিচার যেমন Zooming, Hover, Range Slider, এবং Date Picker ব্যবহার করা যেতে পারে।
নিচে Plotly তে Time Series এর জন্য বিভিন্ন ইন্টারেকটিভ ফিচার যোগ করার উদাহরণ দেওয়া হলো।
১. Zooming এবং Panning
Plotly তে টাইম সিরিজ ডেটার উপর Zooming এবং Panning এর মাধ্যমে ব্যবহারকারী সহজেই নির্দিষ্ট সময়সীমা বা পয়েন্ট দেখে নিতে পারেন। এটি ডিফল্টভাবে সক্রিয় থাকে এবং ব্যবহারকারীরা গ্রাফের মধ্যে স্ক্রল বা ড্র্যাগ করে জুম ইন এবং আউট করতে পারেন।
import plotly.graph_objects as go
import pandas as pd
# টাইম সিরিজ ডেটা তৈরি
dates = pd.date_range(start="2020-01-01", periods=100, freq='D')
values = range(100)
# গ্রাফ তৈরি
fig = go.Figure(data=[go.Scatter(x=dates, y=values, mode='lines')])
# গ্রাফ প্রদর্শন
fig.show()
এই উদাহরণে, টাইম সিরিজ ডেটার উপর জুম ইন এবং আউট করার ফিচার ডিফল্টভাবে সক্রিয় থাকবে।
২. Range Slider
Range slider ব্যবহারকারীদের নির্দিষ্ট সময়সীমা বাছাই করতে সাহায্য করে। এটি টাইম সিরিজ ডেটার উপর কার্যকরীভাবে কাজ করে এবং গ্রাফের নিচে একটি স্লাইডার হিসেবে প্রদর্শিত হয়, যার মাধ্যমে ব্যবহারকারী নির্দিষ্ট সময়ের রেঞ্জ দেখতে পারেন।
fig.update_layout(
xaxis=dict(
rangeslider=dict(visible=True), # রেঞ্জ স্লাইডার যোগ করা
type="date" # টাইম সিরিজের জন্য টাইপ সেট করা
)
)
fig.show()
এটি x অক্ষরে রেঞ্জ স্লাইডার যোগ করবে, যার মাধ্যমে ব্যবহারকারী টাইম সিরিজ ডেটার একটি নির্দিষ্ট সময়সীমা দেখতে পারবেন।
৩. Hover Effects
Hover ফিচারটি টাইম সিরিজ ডেটাতে অতিরিক্ত তথ্য প্রদর্শন করতে সহায়তা করে। এটি ব্যবহারকারীদের মাউস পয়েন্টারকে ডেটা পয়েন্টের উপর রাখলে ডেটা পয়েন্টের সাথে সম্পর্কিত অতিরিক্ত তথ্য প্রদর্শন করে।
fig.update_traces(
hoverinfo="x+y+text", # Hover-এ x, y এবং অতিরিক্ত টেক্সট প্রদর্শন
text=["Day " + str(i) for i in range(100)] # অতিরিক্ত টেক্সট যোগ করা
)
fig.show()
এখানে, প্রতিটি ডেটা পয়েন্টে মাউস হোভার করলে x এবং y মান সহ "Day 1", "Day 2" ইত্যাদি অতিরিক্ত টেক্সট দেখানো হবে।
৪. Date Picker Range
Plotly তে Date Picker Range যোগ করা যায় যা ব্যবহারকারীদের নির্দিষ্ট সময়ের মধ্যে ডেটা দেখতে দেয়। এটি একটি অত্যন্ত কার্যকরী ফিচার যেখানে ব্যবহারকারী নির্দিষ্ট তারিখের মধ্যে ডেটা সীমাবদ্ধ করতে পারেন।
fig.update_layout(
xaxis=dict(
rangeselector=dict(
buttons=[
dict(
count=1,
label="1 মাস",
step="month",
stepmode="backward"
),
dict(
count=6,
label="6 মাস",
step="month",
stepmode="backward"
),
dict(
step="all",
label="সব সময়"
)
]
),
type="date"
)
)
fig.show()
এটি x অক্ষরে একটি Date Picker Range যোগ করবে, যার মাধ্যমে ব্যবহারকারী এক মাস, ছয় মাস, অথবা সমস্ত ডেটার মধ্যে সিলেকশন করতে পারবেন।
৫. Multiple Time Series Comparison
Plotly তে একাধিক টাইম সিরিজের তুলনা করা খুবই সহজ। ব্যবহারকারী একাধিক টাইম সিরিজ একসাথে দেখতে এবং তুলনা করতে পারেন, এবং এটি অত্যন্ত ইন্টারেকটিভ হবে। নিচের উদাহরণে দুটি টাইম সিরিজ একসাথে দেখানো হচ্ছে।
# দুটি টাইম সিরিজের ডেটা তৈরি
values2 = [i + 10 for i in range(100)]
# গ্রাফ তৈরি
fig = go.Figure()
# প্রথম টাইম সিরিজ
fig.add_trace(go.Scatter(x=dates, y=values, mode='lines', name='সিরিজ ১'))
# দ্বিতীয় টাইম সিরিজ
fig.add_trace(go.Scatter(x=dates, y=values2, mode='lines', name='সিরিজ ২'))
fig.show()
এটি দুটি টাইম সিরিজের গ্রাফ তৈরি করবে, যা ব্যবহারকারীরা একসাথে দেখতে পারবেন এবং তুলনা করতে পারবেন।
সারাংশ
Plotly তে টাইম সিরিজ ডেটার জন্য ইন্টারেকটিভ ফিচার যোগ করা খুবই সহজ এবং ব্যবহারকারীদের ডেটা বিশ্লেষণে কার্যকরীভাবে সহায়তা করে। Zooming, Range Slider, Hover Effects, Date Picker Range, এবং Multiple Time Series Comparison এর মতো ফিচারগুলো টাইম সিরিজ ডেটার উপর ইন্টারেকটিভ বিশ্লেষণ করতে সহায়তা করে। এই ফিচারগুলোর মাধ্যমে ব্যবহারকারীরা ডেটার একটি নির্দিষ্ট অংশে সহজেই ফোকাস করতে পারেন এবং তা আরও বিস্তারিতভাবে বিশ্লেষণ করতে পারেন।
Read more