Plotly-তে ডেটা ভিজুয়ালাইজেশন তৈরি করার জন্য বিভিন্ন ধরনের ডেটা ফেচিং পদ্ধতি ব্যবহার করা যায়। এর মধ্যে দুটি জনপ্রিয় পদ্ধতি হলো REST APIs এবং Web Scraping। এই পদ্ধতিগুলি আপনাকে ওয়েব থেকে ডেটা সংগ্রহ করার জন্য সাহায্য করে, যাতে আপনি Plotly গ্রাফ তৈরি করতে পারেন।
১. REST APIs এর মাধ্যমে Data Fetch করা
REST APIs (Representational State Transfer APIs) হল এমন একটি ইন্টারফেস যা একটি সার্ভারের সাথে HTTP প্রোটোকল ব্যবহার করে ডেটা আদান-প্রদান করে। আপনি যখন কোনো ওয়েব সার্ভিসের সাথে REST API ব্যবহার করেন, তখন আপনি সাধারণত JSON বা XML ফরম্যাটে ডেটা পাবেন।
উদাহরণ: REST API থেকে ডেটা Fetch করা এবং Plotly দিয়ে ভিজুয়ালাইজেশন তৈরি করা
ধরি, আমরা একটি পাবলিক REST API থেকে ডেটা নেব এবং তারপর সেই ডেটা দিয়ে একটি Plotly গ্রাফ তৈরি করব।
- REST API থেকে ডেটা Fetch করা
- এখানে আমরা JSONPlaceholder API ব্যবহার করব, যা একটি ফ্রি API, যেখান থেকে আপনি ফেক ডেটা ফেচ করতে পারেন।
import requests
import plotly.express as px
import pandas as pd
# API URL থেকে ডেটা ফেচ করা
url = "https://jsonplaceholder.typicode.com/users"
response = requests.get(url)
# JSON ডেটা পার্স করা
data = response.json()
# প্যান্ডাস DataFrame এ কনভার্ট করা
df = pd.DataFrame(data)
# গ্রাফ তৈরি করা (প্রথম 5 ব্যবহারকারীর নাম এবং তাদের শহর)
fig = px.bar(df.head(), x="name", y="id", color="address.city", title="User Locations")
# গ্রাফ প্রদর্শন
fig.show()
এখানে:
- requests.get() ব্যবহার করে API থেকে ডেটা ফেচ করা হয়েছে।
- response.json() ব্যবহার করে ডেটার JSON ফরম্যাটকে পার্স করা হয়েছে।
- pandas DataFrame ব্যবহার করে JSON ডেটাকে টেবিল আকারে রূপান্তর করা হয়েছে।
- তারপর, Plotly দিয়ে bar chart তৈরি করা হয়েছে।
REST API এর মাধ্যমে Data Fetch করার সুবিধা
- আপনি live ডেটা নিয়ে কাজ করতে পারেন।
- সহজে অন্যান্য ওয়েবসাইট বা সার্ভিস থেকে ডেটা এক্সেস করতে পারেন।
- JSON অথবা XML ফরম্যাটে ডেটা পাওয়া যায়, যা সহজে প্রোসেস করা যায়।
২. Web Scraping এর মাধ্যমে Data Fetch করা
Web Scraping হল এমন একটি পদ্ধতি যার মাধ্যমে আপনি ওয়েব পেজ থেকে ডেটা সংগ্রহ করেন। এটি সাধারণত BeautifulSoup, Selenium, বা Scrapy লাইব্রেরি ব্যবহার করে করা হয়। ওয়েব স্ক্র্যাপিংয়ে, আপনি HTML বা XML ডকুমেন্ট থেকে তথ্য সংগ্রহ করতে পারেন, যা কোনো API বা ডেটাবেসের মাধ্যমে পাওয়া যায় না।
উদাহরণ: Web Scraping এর মাধ্যমে Data Fetch করা
ধরি, আমরা BeautifulSoup ব্যবহার করে একটি ওয়েব পেজ থেকে ডেটা স্ক্র্যাপ করে Plotly দিয়ে ভিজুয়ালাইজেশন তৈরি করব।
- BeautifulSoup ব্যবহার করে ওয়েব থেকে ডেটা স্ক্র্যাপ করা
import requests
from bs4 import BeautifulSoup
import plotly.express as px
# ওয়েব পেজ থেকে HTML ডেটা সংগ্রহ করা
url = "https://quotes.toscrape.com/"
response = requests.get(url)
# BeautifulSoup দিয়ে HTML পার্স করা
soup = BeautifulSoup(response.text, 'html.parser')
# quotes সংগ্রহ করা
quotes = soup.find_all('span', class_='text')
# ডেটাকে লিস্টে সংগ্রহ করা
quotes_list = [quote.text for quote in quotes]
# গ্রাফ তৈরি করা (quote frequency)
fig = px.histogram(quotes_list, title="Quote Frequency", labels={'value': 'Quotes'})
# গ্রাফ প্রদর্শন
fig.show()
এখানে:
- requests.get() ব্যবহার করে ওয়েব পেজ থেকে HTML ডেটা ফেচ করা হয়েছে।
- BeautifulSoup দিয়ে HTML ডকুমেন্টকে পার্স করা হয়েছে।
- find_all() ব্যবহার করে পেজ থেকে সব quote গুলো সংগ্রহ করা হয়েছে।
Web Scraping এর মাধ্যমে Data Fetch করার সুবিধা
- আপনি ওয়েব পেজ থেকে ডেটা স্ক্র্যাপ করতে পারেন যেখানে কোনো API নেই।
- HTML কন্টেন্ট থেকে নির্দিষ্ট তথ্য যেমন টেক্সট, ইমেজ, বা লিঙ্ক সংগ্রহ করা যায়।
- JSON বা XML ফরম্যাটে ডেটা না পাওয়ার সময় এটি একটি উপযুক্ত বিকল্প।
৩. Plotly ব্যবহার করে Web Scraped Data ভিজুয়ালাইজেশন
Web Scraping এবং REST APIs ব্যবহার করে ফেচ করা ডেটা Plotly দিয়ে ভিজুয়ালাইজ করা সম্ভব। সাধারণত, ডেটা pandas DataFrame তে রূপান্তর করার পর Plotly এর মাধ্যমে interactive charts তৈরি করা হয়।
উদাহরণ: Web Scraped Data দিয়ে Plotly Pie Chart তৈরি করা
import requests
from bs4 import BeautifulSoup
import plotly.graph_objects as go
# ওয়েব পেজ থেকে HTML ডেটা সংগ্রহ করা
url = "https://quotes.toscrape.com/"
response = requests.get(url)
# BeautifulSoup দিয়ে HTML পার্স করা
soup = BeautifulSoup(response.text, 'html.parser')
# authors সংগ্রহ করা
authors = [author.text for author in soup.find_all('small', class_='author')]
# authors এর ফ্রিকোয়েন্সি গোনা
author_count = {author: authors.count(author) for author in set(authors)}
# Pie chart তৈরি করা
fig = go.Figure(data=[go.Pie(labels=list(author_count.keys()), values=list(author_count.values()))])
# গ্রাফ প্রদর্শন
fig.show()
এখানে:
- BeautifulSoup ব্যবহার করে ওয়েব পেজ থেকে authors স্ক্র্যাপ করা হয়েছে।
- author_count ডিকশনারি তৈরি করে প্রতিটি author's quote গোনার পর তা Pie Chart তে প্রদর্শন করা হয়েছে।
সারাংশ
- REST APIs এবং Web Scraping দুইটি জনপ্রিয় পদ্ধতি, যা ব্যবহার করে Plotly এর জন্য ডেটা ফেচ করা যায়।
- REST APIs ওয়েব সার্ভিস থেকে সহজেই লাইভ ডেটা আনার জন্য আদর্শ, যেখানে আপনি JSON বা XML ফরম্যাটে ডেটা পাবেন।
- Web Scraping এর মাধ্যমে আপনি যেকোনো ওয়েব পেজ থেকে ডেটা সংগ্রহ করতে পারেন যেখানে কোনো API নেই।
- Plotly-এ ডেটা নিয়ে গ্রাফ তৈরি করে আপনি ইন্টারেকটিভ ভিজুয়ালাইজেশন তৈরি করতে পারেন।
Read more