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

Matplotlib-এ স্মুথ লাইন প্লট করুন (B-spline ইন্টারপোলেশন)

Matplotlib-এ কম পয়েন্ট থাকলে লাইন জগজগ দেখায়। scipy.interpolate.make_interp_spline ব্যবহার করে B-spline ইন্টারপোলেশন দিয়ে স্মুথ লাইন প্লট করার পদ্ধতি।

ধাপসমূহ

  1. ফিগার সাইজ ও প‍্যাডিং সেট করুন
  2. অসংখ্য x, y পয়েন্ট লিস্ট বানান
  3. মূল পয়েন্ট প্লট করুন (রেফারেন্স)
  4. np.linspace দিয়ে ঘন x_new বানান
  5. make_interp_spline(x, y) দিয়ে B-spline অবজেক্ট বানান
  6. y_new = bspline(x_new) ক্যালকুলেট করুন
  7. x_new, y_new প্লট করুন (স্মুথ লাইন)
  8. show() দিয়ে দেখান

উদাহরণ কোড

import numpy as np
from matplotlib import pyplot as plt
from scipy import interpolate

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

x = np.array([1, 3, 4, 6, 7])
y = np.array([5, 1, 3, 2, 4])

plt.plot(x, y, 'o-', label='Original')

x_new = np.linspace(1, 5, 50)  # নোট: এক্সপ্ল্যানেশনে ১-৫, কিন্তু x রেঞ্জ ১-৭
bspline = interpolate.make_interp_spline(x, y)
y_new = bspline(x_new)

plt.plot(x_new, y_new, label='Smooth')
plt.legend()
plt.show()

আউটপুট

মূল ৫টি পয়েন্ট (সার্কেল মার্কারসহ জগজগ লাইন) এবং স্মুথ B-spline লাইন (৫০ পয়েন্ট) একসাথে দেখাবে। নোট: উদাহরণে linspace(1,5,50) আছে কিন্তু x-র রেঞ্জ ১-৭। সঠিক হলে linspace(x.min(), x.max(), 50) ব্যবহার করা উচিত।

  1. Matplotlib-এ কাস্টম কালারম্যাপ দিয়ে imshow()-এ ডেটা প্লট করুন

  2. Matplotlib-এ আর্থবৃত্ত ডেটা ব্যবহার করে ৪D প্লট কীভাবে তৈরি করবেন?

  3. ম্যাটপ্লটলিবে হিস্টোগ্রাম ডেটা থেকে লাইন গ্রাফ আঁকা

  4. ম্যাটপ্লটলিবে লাইন প্লট অ্যানিমেট করা