Plotly তে Animation ব্যবহার করে ডেটার পরিবর্তনকে সময়ের সাথে ইন্টারেকটিভভাবে প্রদর্শন করা যায়। আপনি কাস্টম Duration (অ্যানিমেশন চলার সময়) এবং Easing (অ্যানিমেশন এর গতি পরিবর্তন) কাস্টমাইজ করতে পারেন, যা অ্যানিমেশনকে আরও সুনির্দিষ্ট এবং আকর্ষণীয় করে তোলে। এখানে কিভাবে Duration এবং Easing কাস্টমাইজ করা যায় তার উদাহরণ দেওয়া হবে।
১. Animation Duration কাস্টমাইজ করা
Duration হল অ্যানিমেশনটির সম্পূর্ণ সময়, অর্থাৎ কত সময় ধরে অ্যানিমেশন চলবে। Plotly তে frame এর মধ্যে duration প্যারামিটার ব্যবহার করে আপনি এটি কাস্টমাইজ করতে পারেন।
উদাহরণ:
import plotly.graph_objects as go
import numpy as np
# ডেটা তৈরি
x = np.linspace(0, 10, 100)
y = np.sin(x)
# গ্রাফ তৈরি
fig = go.Figure()
# অ্যানিমেশন ফ্রেম তৈরি
fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name="Sine Wave"))
# অ্যানিমেশন কাস্টমাইজেশন
fig.update_layout(
title="Custom Duration Animation",
updatemenus=[dict(
type='buttons',
showactive=False,
buttons=[dict(
label="Play",
method="animate",
args=[None, dict(
frame=dict(duration=1000, redraw=True), # Duration set to 1000ms (1 second)
fromcurrent=True
)]
)]
)],
sliders=[dict(
steps=[dict(
args=[None, dict(
frame=dict(duration=1000, redraw=True), # Frame duration
mode='immediate'
)],
label="Play",
method="animate"
)]
)]
)
# অ্যানিমেশন ফ্রেম যোগ করা
fig.frames = [go.Frame(data=[go.Scatter(x=x, y=np.sin(x + 0.1 * i))]) for i in range(50)]
# গ্রাফ প্রদর্শন
fig.show()
এখানে, frame=dict(duration=1000, redraw=True) দিয়ে অ্যানিমেশন ফ্রেমের Duration 1000 মিলিসেকেন্ড (1 সেকেন্ড) সেট করা হয়েছে। আপনি এটি পরিবর্তন করে অ্যানিমেশন চলার সময় বৃদ্ধি বা কমাতে পারেন।
২. Animation Easing কাস্টমাইজ করা
Easing হল অ্যানিমেশন চলার গতি বা গতির প্রোফাইল। এটি মূলত অ্যানিমেশনটি কত দ্রুত বা ধীরগতিতে চলবে তা নিয়ন্ত্রণ করে। Plotly তে আপনি easing প্যারামিটার ব্যবহার করে এটি কাস্টমাইজ করতে পারেন।
উদাহরণ:
import plotly.graph_objects as go
import numpy as np
# ডেটা তৈরি
x = np.linspace(0, 10, 100)
y = np.sin(x)
# গ্রাফ তৈরি
fig = go.Figure()
# অ্যানিমেশন ফ্রেম তৈরি
fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name="Sine Wave"))
# অ্যানিমেশন কাস্টমাইজেশন
fig.update_layout(
title="Custom Easing Animation",
updatemenus=[dict(
type='buttons',
showactive=False,
buttons=[dict(
label="Play",
method="animate",
args=[None, dict(
frame=dict(duration=1000, redraw=True), # Duration set to 1000ms (1 second)
fromcurrent=True,
easing="cubic-in-out" # Easing set to cubic-in-out
)]
)]
)],
)
# অ্যানিমেশন ফ্রেম যোগ করা
fig.frames = [go.Frame(data=[go.Scatter(x=x, y=np.sin(x + 0.1 * i))]) for i in range(50)]
# গ্রাফ প্রদর্শন
fig.show()
এখানে, easing="cubic-in-out" সেট করা হয়েছে, যা অ্যানিমেশনকে একটি সোজা এবং মসৃণ গতিতে চালিত করে। আপনি Easing এর বিভিন্ন প্রোফাইল ব্যবহার করতে পারেন, যেমন:
"linear": সরল, সমান গতিতে অ্যানিমেশন।"cubic-in-out": ধীরগতিতে শুরু এবং শেষ হয়, মাঝখানে দ্রুত।"quad-in-out": আরও গতিশীল এবং মসৃণ অ্যানিমেশন প্রোফাইল।
৩. Duration এবং Easing একসাথে ব্যবহার করা
একই অ্যানিমেশনে Duration এবং Easing এর কাস্টমাইজেশন একসাথে ব্যবহার করা যেতে পারে। নিচের উদাহরণে আমরা উভয় কাস্টমাইজেশন একসাথে দেখাবো।
উদাহরণ:
import plotly.graph_objects as go
import numpy as np
# ডেটা তৈরি
x = np.linspace(0, 10, 100)
y = np.sin(x)
# গ্রাফ তৈরি
fig = go.Figure()
# অ্যানিমেশন ফ্রেম তৈরি
fig.add_trace(go.Scatter(x=x, y=y, mode='lines', name="Sine Wave"))
# অ্যানিমেশন কাস্টমাইজেশন
fig.update_layout(
title="Custom Duration and Easing Animation",
updatemenus=[dict(
type='buttons',
showactive=False,
buttons=[dict(
label="Play",
method="animate",
args=[None, dict(
frame=dict(duration=1000, redraw=True), # Duration set to 1000ms (1 second)
fromcurrent=True,
easing="elastic-out" # Easing set to elastic-out
)]
)]
)],
)
# অ্যানিমেশন ফ্রেম যোগ করা
fig.frames = [go.Frame(data=[go.Scatter(x=x, y=np.sin(x + 0.1 * i))]) for i in range(50)]
# গ্রাফ প্রদর্শন
fig.show()
এখানে, Duration 1000 মিলিসেকেন্ড (1 সেকেন্ড) এবং Easing "elastic-out" সেট করা হয়েছে। এটি অ্যানিমেশনকে স্টার্ট এবং এন্ড পয়েন্টে কিছুটা "স্ট্রেচ" করে, একটি সুন্দর এফেক্ট তৈরি করবে।
সারাংশ
Plotly তে Animation এর জন্য Duration এবং Easing কাস্টমাইজ করে আপনি অ্যানিমেশনটির গতিকে আরও নিয়ন্ত্রণ করতে পারেন এবং এটি আরও মসৃণ ও আকর্ষণীয় করতে পারেন। Duration সেট করে আপনি অ্যানিমেশন চলার সময় নিয়ন্ত্রণ করতে পারেন, এবং Easing ব্যবহার করে আপনি অ্যানিমেশনের গতির প্রোফাইল কাস্টমাইজ করতে পারেন। Plotly এই ফিচারগুলি দিয়ে ইন্টারেক্টিভ এবং দৃষ্টিনন্দন অ্যানিমেশন তৈরি করার সুযোগ দেয়।
Read more