Plotly ব্যবহার করে Geospatial Visualization বা ভূগোল ভিত্তিক ডেটা ভিজুয়ালাইজেশন তৈরি করা সম্ভব, যা সারা পৃথিবী বা নির্দিষ্ট অঞ্চলগুলোর উপর ডেটা প্রদর্শন করতে সাহায্য করে। Geospatial Visualization মূলত ম্যাপের মাধ্যমে বিভিন্ন ভৌগোলিক অঞ্চলে ডেটার ব্যাখ্যা প্রদান করে, যেমন দেশের অবস্থান, শহরের ডেটা, অথবা নির্দিষ্ট গ্রীডের মধ্যে ডেটার বিশ্লেষণ। Plotly অনেক ধরনের ম্যাপ গ্রাফ তৈরি করতে সাহায্য করে, যেমন Choropleth Map, Scatter Mapbox, এবং Density Mapbox।
Geospatial Visualization তৈরি করার মূল উপাদান
Plotly তে Geospatial Visualization তৈরির জন্য প্রধানত Mapbox প্ল্যাটফর্ম ব্যবহার করা হয়, যা একাধিক ম্যাপ এবং ভিজুয়ালাইজেশন রেন্ডার করতে সক্ষম। Mapbox, যা Plotly এর একটি গুরুত্বপূর্ণ অংশ, ম্যাপ এবং ভূগোল ভিত্তিক ডেটা বিশ্লেষণের জন্য একটি শক্তিশালী টুল।
Mapbox Access Token
Geospatial Visualization ব্যবহার করার জন্য প্রথমে একটি Mapbox Access Token প্রয়োজন। এটি Mapbox থেকে পাওয়া যায়। Mapbox-এর ওয়েবসাইটে গিয়ে একটি অ্যাকাউন্ট তৈরি করে আপনি Token পেতে পারেন।
# Token গ্রহণ করুন: https://www.mapbox.com
তারপর, আপনি Plotly কোডে এই Tokenটি ব্যবহার করতে পারবেন।
Scatter Mapbox
Scatter Mapbox ব্যবহৃত হয় পৃথিবীর উপর নির্দিষ্ট পয়েন্টগুলোর অবস্থান দেখাতে। এটি ল্যাটিটিউড (latitude) এবং লংগিটিউড (longitude) এর মাধ্যমে ডেটা পয়েন্টকে ম্যাপের উপর প্লট করে।
উদাহরণ:
import plotly.express as px
# উদাহরণ ডেটাসেট
df = px.data.gapminder()
# Scatter Mapbox তৈরি করা
fig = px.scatter_mapbox(df, lat="lat", lon="lon", color="continent", size="pop", hover_name="country",
color_continuous_scale=px.colors.cyclical.IceFire, size_max=15, zoom=3)
# Mapbox Access Token যোগ করা
fig.update_layout(mapbox_style="carto-positron", mapbox_accesstoken="YOUR_MAPBOX_ACCESS_TOKEN")
# গ্রাফ প্রদর্শন
fig.show()
এখানে:
- lat এবং lon: প্রতিটি দেশের জন্য গুগল ম্যাপের ল্যাটিটিউড এবং লংগিটিউড।
- color: ভিন্ন ভিন্ন মহাদেশের জন্য রঙ নির্ধারণ করা হয়েছে।
- size: জনসংখ্যার আকার অনুযায়ী মার্কার সাইজ কাস্টমাইজ করা হয়েছে।
- zoom: ম্যাপের জুম লেভেল নির্ধারণ করা হয়েছে।
Choropleth Map
Choropleth Map একটি ভৌগোলিক ম্যাপ যেখানে প্রতিটি অঞ্চল বা দেশের জন্য একটি নির্দিষ্ট মান (যেমন, জনসংখ্যা, GDP, বা অন্যান্য ভেরিয়েবল) রঙের মাধ্যমে প্রদর্শিত হয়।
উদাহরণ:
import plotly.express as px
# উদাহরণ ডেটাসেট
df = px.data.gapminder()
# Choropleth Map তৈরি করা
fig = px.choropleth(df, locations="country", color="lifeExp", hover_name="country",
color_continuous_scale="Viridis", projection="natural earth")
# গ্রাফ প্রদর্শন
fig.show()
এখানে:
- locations: দেশের নাম ব্যবহার করে প্রতিটি দেশের জন্য ভিন্ন ভিন্ন মান দেখানো হচ্ছে।
- color: জীবনের প্রত্যাশার (Life Expectancy) মান রঙের মাধ্যমে দেখানো হচ্ছে।
- projection: ম্যাপের প্রজেকশন (বিশ্বমণ্ডলীয় প্রকৃতি) নির্ধারণ করা হয়েছে।
Density Mapbox
Density Mapbox ম্যাপের উপর একটি অঞ্চল বা গ্রীডের মধ্যে ডেটা পয়েন্টগুলোর ঘনত্ব দেখায়, যেটি চমৎকারভাবে ঘন বসতি বা অন্যান্য ডেটা বন্টন প্রকাশে সহায়তা করে।
উদাহরণ:
import plotly.express as px
# উদাহরণ ডেটাসেট
df = px.data.gapminder()
# Density Mapbox তৈরি করা
fig = px.density_mapbox(df, lat="lat", lon="lon", z="pop", radius=10,
center={"lat": 0, "lon": 180}, zoom=1,
mapbox_style="stamen-terrain")
# Mapbox Access Token যোগ করা
fig.update_layout(mapbox_accesstoken="YOUR_MAPBOX_ACCESS_TOKEN")
# গ্রাফ প্রদর্শন
fig.show()
এখানে:
- lat এবং lon: ডেটা পয়েন্টগুলোর গৌণ অবস্থান।
- z: ঘনত্বের নির্ধারণকারী মান (এক্ষেত্রে জনসংখ্যা)।
- radius: প্রতিটি ডেটা পয়েন্টের প্যাচের আকার।
সারাংশ
Plotly দিয়ে Geospatial Visualization খুবই সহজে তৈরি করা যায়। আপনি Scatter Mapbox, Choropleth Map, এবং Density Mapbox এর মতো বিভিন্ন ভৌগোলিক ম্যাপ ব্যবহার করতে পারেন, যা ডেটার সঠিক বিশ্লেষণ এবং ভিজুয়াল প্রদর্শন প্রদান করে। Plotly-এর Mapbox এর মাধ্যমে আপনি আপনার ডেটাকে পৃথিবীর উপরে বা নির্দিষ্ট অঞ্চলে ভিজ্যুয়ালাইজ করতে পারবেন এবং বিভিন্ন ভেরিয়েবল যেমন জনসংখ্যা, অর্থনীতি, জীবনের প্রত্যাশা ইত্যাদির উপর ভিত্তি করে ডেটার বিশ্লেষণ করতে পারবেন।
Geo Plots বা Geospatial Plots এমন গ্রাফ যা ভৌগোলিক ডেটাকে দৃশ্যমান করতে সাহায্য করে, যেমন বিভিন্ন দেশ, শহর, অথবা অঞ্চল সম্পর্কিত ডেটা। Plotly তে Geo Plots তৈরি করার জন্য plotly.express বা plotly.graph_objects লাইব্রেরি ব্যবহার করা যেতে পারে। এটি ডেটাকে ভৌগোলিক মানচিত্রে বা গ্লোবাল ম্যাপের উপর প্লট করার সুবিধা দেয়। Geo Plots সাধারণত শেপফাইল বা GeoJSON ডেটা ব্যবহার করে কাজ করে, কিন্তু Plotly তে বিভিন্ন ধরনের বিল্ট-ইন ভৌগোলিক ডেটা ব্যবহার করে প্লট তৈরি করা যায়।
Plotly দিয়ে Geo Plot তৈরি করার ধাপ
- Geo Plot লাইব্রেরি ইন্সটলেশন: সাধারণত
plotlyলাইব্রেরি ইন্সটল করা থাকলে Geo Plot তৈরি করা যায়। - ভৌগোলিক ডেটা ব্যবহার: বিভিন্ন ধরনের ভৌগোলিক ডেটা যেমন দেশের মানচিত্র, শহরের মানচিত্র বা নির্দিষ্ট অঞ্চলের কোঅর্ডিনেট ডেটা ব্যবহার করা যায়।
- GeoJSON এবং শেপফাইল ব্যবহার: ব্যবহারকারীরা কাস্টম ভৌগোলিক ডেটা ফাইল (যেমন GeoJSON) আপলোড করে সেটি প্লট করতে পারেন।
১. চিত্রের মাধ্যমে দেশগুলোর মানচিত্র (Choropleth Map) তৈরি করা
Choropleth Map এমন একটি Geo Plot যা মানচিত্রের বিভিন্ন অঞ্চলের মধ্যে ডেটার পার্থক্য দেখায়। প্রতিটি অঞ্চলের রঙ দিয়ে তার মান বা পরিমাণ বোঝানো হয়।
উদাহরণ:
import plotly.express as px
# উদাহরণ ডেটাসেট (Gapminder)
data = px.data.gapminder()
# Choropleth Map তৈরি করা
fig = px.choropleth(data_frame=data,
locations="country",
color="lifeExp",
hover_name="country",
color_continuous_scale="Viridis")
# গ্রাফ প্রদর্শন
fig.show()
এখানে:
locations="country": দেশের নাম দিয়ে মানচিত্রের স্থান নির্ধারণ করা হয়েছে।color="lifeExp": জীবন প্রত্যাশা (life expectancy) এর ওপর ভিত্তি করে রঙ নির্ধারণ করা হয়েছে।color_continuous_scale="Viridis": রঙের স্কেল নির্ধারণ করা হয়েছে।
এটি একটি Choropleth Map যা বিভিন্ন দেশের মধ্যে জীবন প্রত্যাশা বিশ্লেষণ করছে।
২. স্ক্যাটার প্লট ব্যবহার করে Geo Plot
Geo Plot তৈরি করতে আপনি স্ক্যাটার প্লটও ব্যবহার করতে পারেন, যেখানে পয়েন্টগুলোর অবস্থান ল্যাটিচুড এবং লংগিচুডের মাধ্যমে নির্ধারিত হয়। এই ধরনের প্লটে আপনি বিভিন্ন শহর বা দেশের জন্য নির্দিষ্ট তথ্য প্রদর্শন করতে পারেন।
উদাহরণ:
import plotly.express as px
# উদাহরণ ডেটাসেট (প্লটলি ডেটাসেট)
data = px.data.gapminder()
# স্ক্যাটার প্লট তৈরি করা
fig = px.scatter_geo(data_frame=data,
locations="country",
size="pop", # সাইজ অনুযায়ী জনগণের সংখ্যা
color="continent", # মহাদেশ অনুযায়ী রঙ
hover_name="country",
projection="natural earth", # মানচিত্রের প্রজেকশন
title="Population of Countries")
# গ্রাফ প্রদর্শন
fig.show()
এখানে:
locations="country": দেশগুলোর কোঅর্ডিনেট সিস্টেম অনুযায়ী স্থান নির্ধারণ করা হয়েছে।size="pop": জনগণের সংখ্যা অনুযায়ী পয়েন্টের আকার কাস্টমাইজ করা হয়েছে।projection="natural earth": মানচিত্রের প্রজেকশন পদ্ধতি নির্ধারণ করা হয়েছে (এখানে "natural earth" ব্যবহার করা হয়েছে)।
এটি একটি স্ক্যাটার প্লট যা বিশ্বের বিভিন্ন দেশ ও তাদের জনগণের সংখ্যা প্রদর্শন করছে।
৩. কাস্টম GeoJSON ব্যবহার করে Geo Plot তৈরি করা
Plotly তে GeoJSON ফাইল ব্যবহার করে কাস্টম মানচিত্র তৈরি করা যায়। GeoJSON একটি ডেটা ফর্ম্যাট যা ভৌগোলিক তথ্য ধারণ করে, যেমন দেশ, শহর, এবং নির্দিষ্ট এলাকার আকার ও সীমানা।
উদাহরণ:
import plotly.graph_objects as go
import json
# GeoJSON ডেটা লোড করা (এই উদাহরণে GeoJSON ফাইল ব্যবহার করা হয়েছে)
with open('path_to_your_geojson_file.geojson') as f:
geojson_data = json.load(f)
# কাস্টম Geo Plot তৈরি করা
fig = go.Figure(go.Choropleth(
geojson=geojson_data,
locations=['Region1', 'Region2', 'Region3'], # কাস্টম স্থান
z=[10, 20, 30], # কাস্টম ডেটা
colorbar_title="Value"
))
# মানচিত্রের প্রজেকশন নির্ধারণ
fig.update_geos(fitbounds="locations", visible=False)
# গ্রাফ প্রদর্শন
fig.show()
এখানে:
geojson_data: একটি কাস্টম GeoJSON ফাইল লোড করা হয়েছে যা আপনার নির্বাচিত স্থানগুলোর সীমানা ও তথ্য ধারণ করে।locations: GeoJSON ফাইলে নির্দিষ্ট অঞ্চলগুলো দেওয়া হয়।z: নির্দিষ্ট মানের উপর ভিত্তি করে রঙ নির্ধারণ করা হয়।
এটি কাস্টম GeoJSON ডেটার মাধ্যমে Geo Plot তৈরি করে প্রদর্শন করবে।
৪. প্লটলি-তে গ্লোবাল ম্যাপ (Globe Map) তৈরি করা
Plotly তে Globe Map তৈরি করতে পারেন যেখানে একটি ৩D গ্লোব ব্যবহার করে পৃথিবীর বিভিন্ন স্থান প্রদর্শন করা হয়।
উদাহরণ:
import plotly.graph_objects as go
# গ্লোবাল ম্যাপ তৈরি
fig = go.Figure(go.Scattergeo(
locationmode='country names',
locations=["United States", "Brazil", "India", "China", "Australia"],
marker=dict(size=10, color="blue")
))
# গ্লোবাল ম্যাপের প্রজেকশন নির্ধারণ
fig.update_geos(projection_type="orthographic")
# গ্রাফ প্রদর্শন
fig.show()
এখানে, projection_type="orthographic" ব্যবহার করে একটি ৩D গ্লোবাল ম্যাপ তৈরি করা হয়েছে।
সারাংশ
Plotly তে Geo Plots তৈরি করা অনেক সহজ এবং এটি বিশ্বব্যাপী ডেটার ভিজুয়ালাইজেশনে সাহায্য করে। আপনি Choropleth Maps, Scatter Plots, GeoJSON ফাইল ব্যবহার করে কাস্টম মানচিত্র, এবং 3D Globe Maps তৈরি করতে পারেন। এসব Geo Plots ডেটা বিশ্লেষণ এবং ভিজুয়ালাইজেশনে একটি নতুন মাত্রা যোগ করে।
Plotly দিয়ে Scatter Geo এবং Choropleth Maps তৈরি করা অত্যন্ত শক্তিশালী ভিজুয়ালাইজেশন টুলস, যা ভৌগলিক ডেটা বিশ্লেষণ এবং প্রদর্শনে ব্যবহৃত হয়। এই গ্রাফগুলোর মাধ্যমে আপনি বিশ্বব্যাপী বা দেশ/রাজ্যের পর্যায়ে বিভিন্ন ধরনের তথ্য উপস্থাপন করতে পারেন। এখানে আমরা Scatter Geo এবং Choropleth Maps এর ব্যবহার এবং উদাহরণ দেখব।
Scatter Geo
Scatter Geo হল একটি গ্লোবাল বা দেশভিত্তিক মানচিত্রে পয়েন্টগুলোর অবস্থান দেখানোর জন্য ব্যবহৃত একটি প্লট। আপনি বিভিন্ন ভৌগলিক স্থান যেমন শহর, দেশ বা স্থান অনুযায়ী ডেটা পয়েন্টগুলো চিত্রিত করতে পারেন।
Scatter Geo Plot তৈরি করার উদাহরণ
import plotly.express as px
# উদাহরণ ডেটাসেট (গ্যাপমাইন্ডার ডেটা)
data = px.data.gapminder()
# Scatter Geo তৈরি করা
fig = px.scatter_geo(data, locations="iso_alpha", size="pop", color="continent", hover_name="country",
size_max=100, projection="natural earth")
# গ্রাফ প্রদর্শন
fig.show()
ব্যাখ্যা:
locations="iso_alpha": এই প্যারামিটারটি দেশের আইসো কোড ব্যবহার করে (যেমন, 'USA' বা 'IN' ইত্যাদি)।size="pop": এখানে পপুলেশন অনুযায়ী প্রতিটি পয়েন্টের আকার নির্ধারণ করা হয়েছে।color="continent": প্রতিটি পয়েন্টকে মহাদেশ অনুযায়ী রঙ দেওয়া হয়েছে।projection="natural earth": এটি মানচিত্রের আকার এবং প্রকৃতিকে নির্ধারণ করে। অন্যান্য প্রজেকশন স্টাইল যেমন 'equirectangular', 'orthographic', 'mercator' ইত্যাদিও ব্যবহার করা যেতে পারে।
Choropleth Map
Choropleth Map হল একটি মানচিত্র যেখানে বিভিন্ন অঞ্চলের (যেমন দেশ, রাজ্য, শহর) উপর ভিন্ন ভিন্ন রঙ ব্যবহার করে ডেটা প্রদর্শিত হয়। এই ধরনের মানচিত্র সাধারণত জনগণের ঘনত্ব, আয়ের স্তর, স্বাস্থ্য ইত্যাদি দেখানোর জন্য ব্যবহৃত হয়। এখানে, প্রতিটি অঞ্চল ভিন্ন রঙে চিত্রিত হয়, যা তাদের মান বা পরিসংখ্যানের ভিত্তিতে প্রদর্শিত হয়।
Choropleth Map তৈরি করার উদাহরণ
import plotly.express as px
# উদাহরণ ডেটাসেট (গ্যাপমাইন্ডার ডেটা)
data = px.data.gapminder()
# Choropleth Map তৈরি করা
fig = px.choropleth(data, locations="iso_alpha", color="lifeExp", hover_name="country",
color_continuous_scale="Viridis", projection="natural earth")
# গ্রাফ প্রদর্শন
fig.show()
ব্যাখ্যা:
locations="iso_alpha": দেশের আইসো কোড ব্যবহার করে দেশগুলোর অবস্থান নির্ধারণ করা হয়েছে।color="lifeExp": দেশগুলোর জীবন প্রত্যাশা (life expectancy) এর উপর ভিত্তি করে রঙ পরিবর্তিত হবে।color_continuous_scale="Viridis": রঙের স্কেল। এখানে 'Viridis' ব্যবহার করা হয়েছে, তবে আপনি 'Plasma', 'Cividis', 'Inferno' ইত্যাদি বিভিন্ন রঙের স্কেল ব্যবহার করতে পারেন।projection="natural earth": মানচিত্রের প্রকৃতি বা প্রজেকশন নির্ধারণ করা হয়েছে। অন্যান্য প্রজেকশন পদ্ধতিও এখানে ব্যবহার করা যেতে পারে।
Scatter Geo এবং Choropleth Map এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Scatter Geo | Choropleth Map |
|---|---|---|
| ডেটা প্রদর্শন | পয়েন্ট (বা মার্কার) হিসেবে বিভিন্ন ভৌগলিক স্থানে ডেটা প্রদর্শন করা হয় | বিভিন্ন অঞ্চলের রঙের মাধ্যমে পরিসংখ্যান বা মান প্রদর্শন করা হয় |
| প্রয়োগ | প্রতিটি অঞ্চলের জন্য ডেটা পয়েন্ট দেখানো হয় (যেমন শহর বা দেশ) | অঞ্চল বা এলাকা ভিত্তিক তথ্য প্রদর্শন করা হয় (যেমন দেশ, রাজ্য) |
| ডেটার ধরন | প্রতিটি পয়েন্টের অবস্থান, আকার এবং রঙের মাধ্যমে ডেটা প্রদর্শন | অঞ্চলের জন্য একটি নির্দিষ্ট মান (যেমন আয়, স্বাস্থ্য) দেখানো হয় |
| উপযোগিতা | স্থানভিত্তিক ভিন্ন ভিন্ন ডেটা পয়েন্টের বিশ্লেষণ | অঞ্চলভিত্তিক পরিসংখ্যান বিশ্লেষণ |
Plotly তে Scatter Geo এবং Choropleth Map কাস্টমাইজেশন
Scatter Geo কাস্টমাইজেশন
import plotly.express as px
# ডেটাসেট
data = px.data.gapminder()
# Scatter Geo কাস্টমাইজেশন
fig = px.scatter_geo(data, locations="iso_alpha", size="pop", color="continent", hover_name="country",
size_max=100, projection="orthographic", title="World Population by Continent")
# গ্রাফ কাস্টমাইজ
fig.update_geos(showcoastlines=True, coastlinecolor="Black", projection_scale=5)
# গ্রাফ প্রদর্শন
fig.show()
এখানে, projection="orthographic" প্রজেকশন পরিবর্তন করা হয়েছে এবং update_geos() ফাংশন ব্যবহার করে উপকূলীয় রেখা এবং স্কেল কাস্টমাইজ করা হয়েছে।
Choropleth Map কাস্টমাইজেশন
import plotly.express as px
# ডেটাসেট
data = px.data.gapminder()
# Choropleth Map কাস্টমাইজেশন
fig = px.choropleth(data, locations="iso_alpha", color="lifeExp", hover_name="country",
color_continuous_scale="Blues", projection="natural earth", title="Life Expectancy by Country")
# গ্রাফ কাস্টমাইজ
fig.update_geos(showcoastlines=True, coastlinecolor="Black", projection_scale=2)
# গ্রাফ প্রদর্শন
fig.show()
এখানে, color_continuous_scale="Blues" ব্যবহার করে রঙের স্কেল পরিবর্তন করা হয়েছে এবং update_geos() ব্যবহার করে উপকূলীয় রেখা এবং স্কেল কাস্টমাইজ করা হয়েছে।
সারাংশ
Plotly দিয়ে Scatter Geo এবং Choropleth Maps তৈরি করা খুবই সহজ এবং এগুলো ভৌগলিক ডেটা বিশ্লেষণে গুরুত্বপূর্ণ ভূমিকা পালন করে। Scatter Geo বিভিন্ন পয়েন্টের মাধ্যমে ভৌগলিক ডেটা দেখাতে সহায়তা করে, এবং Choropleth Map বিভিন্ন অঞ্চলের মান বা পরিসংখ্যানের উপর ভিত্তি করে রঙের মাধ্যমে ডেটা প্রদর্শন করে। এগুলো কাস্টমাইজ করে আপনি আরও আকর্ষণীয় এবং তথ্যপূর্ণ ভিজুয়ালাইজেশন তৈরি করতে পারেন।
Plotly তে ম্যাপ ভিজুয়ালাইজেশন তৈরি করতে Mapbox এবং OpenStreetMap দুটি জনপ্রিয় ম্যাপিং প্ল্যাটফর্ম ব্যবহার করা যায়। Mapbox এবং OpenStreetMap উভয়ই ভিজুয়াল ডেটা ডিসপ্লে করার জন্য অত্যন্ত শক্তিশালী এবং ইন্টারেকটিভ ম্যাপিং সেবা প্রদান করে। চলুন দেখি কীভাবে Plotly তে এই দুটি প্ল্যাটফর্ম ইন্টিগ্রেট করা যায়।
১. Mapbox Integration
Mapbox একটি জনপ্রিয় ম্যাপিং প্ল্যাটফর্ম যা উন্নত কাস্টমাইজেশন এবং ইন্টারেকটিভ ম্যাপ তৈরির জন্য ব্যবহার করা হয়। Plotly তে Mapbox ব্যবহার করার জন্য, আপনাকে একটি Mapbox Access Token প্রয়োজন হয়, যা আপনি Mapbox এর অফিসিয়াল ওয়েবসাইট থেকে পাবেন।
Mapbox Integration Example
import plotly.graph_objects as go
# Mapbox অ্যাক্সেস টোকেন
mapbox_access_token = "your_mapbox_access_token"
# ম্যাপ ডেটা
fig = go.Figure(go.Scattermapbox(
lat=[37.7749], # Latitude
lon=[-122.4194], # Longitude
mode='markers',
marker=dict(size=14),
text="San Francisco"
))
# ম্যাপ লেআউট
fig.update_layout(
mapbox=dict(
style="open-street-map", # ম্যাপের স্টাইল
center=dict(lat=37.7749, lon=-122.4194), # কেন্দ্রবিন্দু নির্ধারণ
zoom=10, # জুম লেভেল
accesstoken=mapbox_access_token
),
title="Mapbox Integration Example"
)
fig.show()
এখানে style="open-street-map" ব্যবহার করা হয়েছে, তবে আপনি Mapbox এর নিজের স্টাইল যেমন streets, light, dark, ইত্যাদি ব্যবহার করতে পারেন। Mapbox প্ল্যাটফর্মটি কাস্টম ম্যাপ তৈরি এবং বিস্তারিত ভিজুয়ালাইজেশন জন্য খুবই জনপ্রিয়।
২. OpenStreetMap Integration
OpenStreetMap (OSM) একটি ওপেন সোর্স এবং বিনামূল্যের ম্যাপিং প্ল্যাটফর্ম। Plotly তে OpenStreetMap ব্যবহার করা সহজ, এবং এটি কোনও বিশেষ API টোকেনের প্রয়োজন ছাড়াই ব্যবহৃত হতে পারে। Plotly তে OSM ইন্টিগ্রেট করতে, আপনি Mapbox এর পরিবর্তে OpenStreetMap স্টাইল ব্যবহার করতে পারেন।
OpenStreetMap Integration Example
import plotly.graph_objects as go
# ম্যাপ ডেটা
fig = go.Figure(go.Scattermapbox(
lat=[51.5074], # Latitude
lon=[-0.1278], # Longitude
mode='markers',
marker=dict(size=14),
text="London"
))
# ম্যাপ লেআউট
fig.update_layout(
mapbox=dict(
style="open-street-map", # OpenStreetMap স্টাইল
center=dict(lat=51.5074, lon=-0.1278), # কেন্দ্রবিন্দু নির্ধারণ
zoom=10 # জুম লেভেল
),
title="OpenStreetMap Integration Example"
)
fig.show()
এখানে style="open-street-map" ব্যবহার করার মাধ্যমে OpenStreetMap এর ম্যাপ স্টাইল ব্যবহার করা হয়েছে। OpenStreetMap কোনো API টোকেনের প্রয়োজন হয় না, এবং এটি একটি সম্পূর্ণ মুক্ত প্ল্যাটফর্ম যা দ্রুত ইন্টিগ্রেশন এবং সহজ কাস্টমাইজেশন প্রদান করে।
৩. Mapbox এবং OpenStreetMap এর মধ্যে পার্থক্য
- Mapbox: একটি প্রিমিয়াম ম্যাপিং প্ল্যাটফর্ম, যা উন্নত কাস্টমাইজেশন, বিশেষ ম্যাপ স্টাইল এবং উচ্চ মানের ভিজুয়াল আইডেন্টিটি প্রদান করে। Mapbox ব্যবহার করতে একটি অ্যাক্সেস টোকেন প্রয়োজন এবং এটি আরও উন্নত গ্রাফিক্স ও ডেটা ভিজুয়ালাইজেশন সমর্থন করে।
- OpenStreetMap: একটি ওপেন সোর্স ম্যাপিং প্ল্যাটফর্ম, যা মুক্ত এবং বিনামূল্যে ব্যবহার করা যায়। এটি কম কাস্টমাইজেশন সরবরাহ করে তবে এটি একটি সিম্পল এবং কার্যকরী সলিউশন প্রদান করে, বিশেষত যদি আপনি খুব বেশি কাস্টম গ্রাফিক্সের প্রয়োজন না করেন।
সারাংশ
Plotly তে Mapbox এবং OpenStreetMap ইন্টিগ্রেট করার মাধ্যমে আপনি আপনার ডেটাকে ম্যাপের মাধ্যমে ভিজুয়ালাইজ করতে পারেন। Mapbox উন্নত কাস্টমাইজেশন এবং শক্তিশালী ভিজুয়াল ডেটা ডিসপ্লে সরবরাহ করে, কিন্তু OpenStreetMap সহজ, ওপেন সোর্স এবং বিনামূল্যে একটি বিকল্প প্রদান করে। আপনি আপনার প্রয়োজন অনুযায়ী, এই দুটি প্ল্যাটফর্মের মধ্যে যে কোনও একটি ব্যবহার করতে পারেন।
Plotly তে Geospatial Data ভিজুয়ালাইজ করার জন্য Custom Maps তৈরি করা যায়, যা বিভিন্ন ধরনের লোকেশন ডেটা (যেমন ল্যাটিচিউড, লংগিচিউড) প্রদর্শন করে। Plotly এর সাহায্যে আপনি Choropleth Maps, Scatter Maps, Line Maps এবং Bubble Maps তৈরি করতে পারেন। এছাড়া, আপনি নিজের কাস্টম পটভূমি (background) ব্যবহার করে আপনার মানচিত্রকে আরও আকর্ষণীয় এবং ইন্টারেক্টিভ করতে পারেন।
১. Scatter Map তৈরি করা
Scatter Map, বা Marker Map, ল্যাটিচিউড এবং লংগিচিউডের উপর ভিত্তি করে বিভিন্ন পয়েন্ট প্রদর্শন করার জন্য ব্যবহৃত হয়। এটি সাধারণত অবস্থান তথ্য ভিজুয়ালাইজ করতে ব্যবহৃত হয়।
উদাহরণ: Scatter Map তৈরি করা
import plotly.express as px
# উদাহরণ ডেটাসেট
df = px.data.gapminder()
# Scatter map তৈরির উদাহরণ
fig = px.scatter_geo(df, locations="iso_alpha", size="pop", color="continent", hover_name="country",
projection="natural earth", title="World Population by Continent")
fig.show()
এখানে, scatter_geo ফাংশন ব্যবহার করা হয়েছে, যা বিশ্বের বিভিন্ন দেশের তথ্য প্রদর্শন করে। projection="natural earth" মানচিত্রের প্রজেকশন স্টাইল নির্ধারণ করে এবং size="pop" দ্বারা পপুলেশন অনুযায়ী মাপ নির্ধারণ করা হয়েছে।
২. Choropleth Map তৈরি করা
Choropleth Map ডেটার বিভিন্ন অঞ্চলের ভ্যালু বা ক্যাটেগরি অনুযায়ী রঙ দিয়ে আলাদা আলাদা করে থাকে। এটি ভূগোলভিত্তিক ডেটা ভিজুয়ালাইজ করার জন্য খুবই কার্যকরী।
উদাহরণ: Choropleth Map তৈরি করা
import plotly.express as px
# উদাহরণ ডেটাসেট
df = px.data.gapminder()
# Choropleth map তৈরির উদাহরণ
fig = px.choropleth(df, locations="iso_alpha", color="gdpPercap", hover_name="country", color_continuous_scale="Viridis",
title="GDP per Capita by Country")
fig.show()
এখানে, px.choropleth ব্যবহার করে GDP per Capita এর উপর ভিত্তি করে দেশের মানচিত্র প্রদর্শন করা হয়েছে। color_continuous_scale="Viridis" দ্বারা রঙের স্কেল নির্ধারণ করা হয়েছে।
৩. Custom Map with GeoJSON
Plotly তে আপনি কাস্টম GeoJSON ডেটা ব্যবহার করে মানচিত্র তৈরি করতে পারেন। এটি আপনাকে একটি কাস্টম পটভূমি ব্যবহার করার সুযোগ দেয়, যেমন নিজস্ব শহর বা দেশগুলোর মানচিত্র।
উদাহরণ: Custom Map with GeoJSON
import plotly.graph_objects as go
import json
# GeoJSON ডেটা লোড করা
with open('your_geojson_file.json') as f:
geojson_data = json.load(f)
# কাস্টম GeoJSON মানচিত্র তৈরি করা
fig = go.Figure(go.Choroplethmapbox(
geojson=geojson_data,
locations=[0, 1, 2, 3], # Example location indices in your GeoJSON file
z=[10, 20, 30, 40], # Example values to color-code
colorscale="Viridis",
showscale=True
))
# Mapbox Access Token ব্যবহার করে মানচিত্র কাস্টমাইজ করা
fig.update_layout(
geo=dict(
center={"lat": 0, "lon": 0},
projection_scale=5,
visible=True
),
title="Custom GeoJSON Map"
)
# গ্রাফ প্রদর্শন
fig.show()
এখানে, go.Choroplethmapbox ব্যবহার করে একটি কাস্টম GeoJSON ডেটা সেটের উপর ভিত্তি করে মানচিত্র তৈরি করা হয়েছে। আপনাকে আপনার নিজস্ব GeoJSON ফাইলটি লোড করতে হবে।
৪. Bubble Map তৈরি করা
Bubble Map, Scatter Map এর মতো, কিন্তু এতে প্রতিটি পয়েন্টের আকার এবং রঙ নির্ধারণ করা যায়। এটি কোনো নির্দিষ্ট স্থানের মধ্যে ডেটার ঘনত্ব বা আকার বোঝাতে সহায়তা করে।
উদাহরণ: Bubble Map তৈরি করা
import plotly.express as px
# উদাহরণ ডেটাসেট
df = px.data.gapminder()
# Bubble Map তৈরির উদাহরণ
fig = px.scatter_geo(df, locations="iso_alpha", size="pop", color="continent", hover_name="country",
projection="natural earth", title="Bubble Map Example")
fig.show()
এখানে, size="pop" দ্বারা দেশের পপুলেশন অনুসারে বুদবুদ আকার নির্ধারণ করা হয়েছে এবং color="continent" দ্বারা মহাদেশ অনুযায়ী রঙ দেওয়া হয়েছে।
৫. Map Customization
Plotly তে কাস্টম মানচিত্র তৈরি করার সময় আপনি মানচিত্রের বিভিন্ন কাস্টমাইজেশন করতে পারেন, যেমন ব্যাকগ্রাউন্ড রঙ, লেজেন্ড, স্কেল, এবং প্রজেকশন স্টাইল পরিবর্তন করা।
উদাহরণ: Map Customization
import plotly.express as px
# উদাহরণ ডেটাসেট
df = px.data.gapminder()
# Custom Map কাস্টমাইজেশন
fig = px.scatter_geo(df, locations="iso_alpha", size="pop", color="continent", hover_name="country",
projection="mercator", title="Custom Mercator Projection Map")
# কাস্টম ব্যাকগ্রাউন্ড এবং অন্যান্য কাস্টমাইজেশন
fig.update_layout(
geo=dict(
bgcolor="lightblue", # ব্যাকগ্রাউন্ড রঙ
showland=True, # ল্যান্ড শো করা
landcolor="white", # ল্যান্ড রঙ
showlakes=True, # লেক শো করা
lakecolor="lightgreen" # লেক রঙ
)
)
fig.show()
এখানে, মানচিত্রের ব্যাকগ্রাউন্ড এবং অন্যান্য এলিমেন্টগুলির রঙ কাস্টমাইজ করা হয়েছে, যেমন লেক এবং ল্যান্ডের রঙ পরিবর্তন করা হয়েছে।
সারাংশ
Plotly তে Geospatial Data ভিজুয়ালাইজেশন এবং Custom Maps তৈরি করার জন্য অনেক শক্তিশালী টুলস রয়েছে। Scatter Maps, Choropleth Maps, Bubble Maps এবং GeoJSON কাস্টম মানচিত্র ব্যবহার করে আপনি বিভিন্ন ধরনের ভৌগোলিক ডেটা প্রদর্শন করতে পারেন। এছাড়া, Mapbox সহ কাস্টম প্রজেকশন, ব্যাকগ্রাউন্ড রঙ, এবং অন্যান্য কাস্টমাইজেশনও সম্ভব। Plotly এই টুলস ব্যবহার করে আপনি আপনার মানচিত্রের অভিজ্ঞতা আরও ইন্টারেকটিভ এবং আকর্ষণীয় করতে পারেন।
Read more