কম্পিউটার টিউটোরিয়াল

Matplotlib-এ ব্লার (blurred) পয়েন্ট প্লট করা

পয়েন্টের বদলে ব্লার করা মার্কার প্লট করতে: (১) একটি মার্কার ইমেজ তৈরি করুন, (২) সেটি ফাইল হিসেবে সেভ করুন, (৩) Gaussian ফিল্টার (scipy.ndimage.gaussian_filter) দিয়ে ব্লার করুন, (৪) BboxImage হিসেবে অ্যাক্সেসে যোগ করুন।

ধাপসমূহ
  1. ফিগার সাইজ এবং লেআউট সেট করুন।
  2. ফিগার ১: বড় মার্কার আঁকে marker.png হিসেবে সেভ করুন।
  3. মার্কার ইমেজ লোড করুন (plt.imread)।
  4. ফিগার ২: র‍্যান্ডম X, Y পয়েন্ট জেনারেট করুন।
  5. প্রতিটি পয়েন্টের জন্য gaussian_filter(marker, sigma) দিয়ে ব্লার করুন (sigma বাড়ালে বেশি ব্লার)।
  6. BboxImage তৈরি করে ax.add_artist() দিয়ে যোগ করুন।
  7. plt.show()।
উদাহরণ কোড
import matplotlib.pyplot as plt
from scipy import ndimage
from matplotlib.image import BboxImage
from matplotlib.transforms import Bbox, TransformedBbox
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# Marker image create
fig1 = plt.figure()
ax1 = fig1.add_subplot(111)
ax1.plot(0.5, 0.5, 'd', ms=200)
ax1.set_ylim(0, 1)
ax1.set_xlim(0, 1)
plt.axis('off')
fig1.savefig('marker.png')
marker = plt.imread('marker.png')
plt.close(fig1)

# Blurred points plot
fig2 = plt.figure()
ax2 = fig2.add_subplot(111)
x = 8 * np.random.rand(10) + 1
y = 8 * np.random.rand(10) + 1
sigma = np.arange(10, 60, 5)

for xi, yi, sigmai in zip(x, y, sigma):
    markerBlur = ndimage.gaussian_filter(marker, sigmai)
    bb = Bbox.from_bounds(xi, yi, 1, 1)
    bb2 = TransformedBbox(bb, ax2.transData)
    bbox_image = BboxImage(bb2, norm=None, origin=None, clip_on=False)
    bbox_image.set_data(markerBlur)
    ax2.add_artist(bbox_image)

ax2.set_xlim(0, 10)
ax2.set_ylim(0, 10)
plt.show()
আউটপুট

১০টি ব্লার ডায়ামন্ড ماركার দেখাবে, যাদের ব্লারনেস (sigma) ক্রমাগত বড় হচ্ছে (বাম থেকে ডানে)।

নোট: এই পদ্ধতিটি কম্পিউটেশনালি ব্যয়বহুল; বড় ডেটাসেটের জন্য scatter() + অ্যালফা বা কर्नেল ডেনসিটি এস্টিমেশন ভালো।
  1. Matplotlib-এ ৩D ফিগারে কালারবারের সাথে স্ক্যাটার পয়েন্ট প্লট করার পদ্ধতি

  2. Matplotlib-এ ৩D কন্টিনিউয়াস লাইন কীভাবে প্লট করবেন?

  3. Matplotlib-এ ৩D অক্ষে একটি পয়েন্ট কীভাবে প্লট করবেন?

  4. পাইথন Matplotlib ব্যবহার করে ৩D গ্রাফ প্লট করার পদ্ধতি