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

Matplotlib-এ লাইন গ্রাফের কালার ডেটা ইন্ডেক্স অনুযায়ী ভেরিয়েট করুন

Matplotlib-এ LineCollection ব্যবহার করে লাইন গ্রাফের কালার ডেটা ইন্ডেক্স (ডেরিভেটিভ/স্লোপ) অনুযায়ী ভেরিয়েট করুন। দুটি উদাহরণ: ক্রমাগত কালারম্যাপ (viridis) এবং ডিসক্রিট কালারম্যাপ (r/g/b)।

ধাপসমূহ

  1. ফিগার সাইজ ও প‍্যাডিং সেট করুন
  2. x, y ডেটা জেনারেট করুন (sin wave)
  3. ডেরিভেটিভ (dydx) ক্যালকুলেট করুন
  4. পয়েন্টস ও সেগমেন্টস অ্যারে বানান
  5. ২টি সাবপ্লট: (১) ক্রমাগত viridis, (২) ডিসক্রিট r/g/b
  6. LineCollection, Normalize, BoundaryNorm ব্যবহার করুন
  7. কালারবার যোগ করুন
  8. show() দিয়ে দেখান

উদাহরণ কোড

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
from matplotlib.colors import ListedColormap, BoundaryNorm

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

x = np.linspace(0, 3 * np.pi, 500)
y = np.sin(x)
dydx = np.cos(0.5 * (x[:-1] + x[1:]))

points = np.array([x, y]).T.reshape(-1, 1, 2)
segments = np.concatenate([points[:-1], points[1:]], axis=1)

fig, axs = plt.subplots(2, 1, sharex=True, sharey=True)

# ক্রমাগত কালারম্যাপ
norm = plt.Normalize(dydx.min(), dydx.max())
lc = LineCollection(segments, cmap='viridis', norm=norm)
lc.set_array(dydx)
lc.set_linewidth(2)
line = axs[0].add_collection(lc)
fig.colorbar(line, ax=axs[0])

# ডিসক্রিট কালারম্যাপ
cmap = ListedColormap(['r', 'g', 'b'])
norm = BoundaryNorm([-1, -0.5, 0.5, 1], cmap.N)
lc = LineCollection(segments, cmap=cmap, norm=norm)
lc.set_array(dydx)
lc.set_linewidth(2)
line = axs[1].add_collection(lc)
fig.colorbar(line, ax=axs[1])

axs[0].set_xlim(x.min(), x.max())
axs[0].set_ylim(-1.1, 1.1)
plt.show()

আউটপুট

উপরের সাবপ্লটে সাইন ভেবে কালার ডেরিভেটিভ অনুযায়ী ক্রমাগতভাবে viridis কালারম্যাপে ভেরিয়েট করছে। নিচের সাবপ্লটে ৩টি ডিসক্রিট কালার (লাল/সবুজ/নীল) ডেরিভেটিভ রেঞ্জ অনুযায়ী।

  1. Matplotlib-এ থ্রেশহোল্ড লাইন সহ বার চার্ট কীভাবে তৈরি করবেন?

  2. Matplotlib-এ লাইন গ্রাফের Y-অক্ষে একাধিক Pandas কলাম প্লট করার পদ্ধতি

  3. Matplotlib-এ ডিসক্রিট ভ্যালুর জন্য হিস্টোগ্রাম বানানোর পদ্ধতি

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