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

পাইথনে গ্রাফ প্লটিং: matplotlib লাইব্রেরির ব্যবহার

পাইথনে matplotlib লাইব্রেরি ব্যবহার করে বিভিন্ন ধরনের গ্রাফ ও প্লট তৈরি করা যায়। এর অসংখ্য প্যাকেজ ও ফাংশন রয়েছে। এটি numpy ও পাইথনের বিল্ট-ইন ফাংশনসহ ব্যবহার করা খুব সহজ। এই আর্টিকেলে matplotlib-এ তৈরি করা কিছু গ্রাফের উদাহরণ দেখানো হয়েছে।

সিম্পল গ্রাফ

এখানে একটি গাণিতিক ফাংশন ব্যবহার করে গ্রাফের X এবং Y কোঅর্ডিনেট জেনারেট করা হয়েছে। তারপর matplotlib দিয়ে সে ফাংশনের গ্রাফ প্লট করা হয়েছে। গ্রাফে লেবেল এবং টাইটেল যোগ করা হয়েছে। এখানে ট্রাইগোনোমেট্রিক ফাংশন tan-এর গ্রাফ আঁকা হয়েছে।

উদাহরণ

from matplotlib import pyplot as plt
import numpy as np
import math  # pi-এর জন্য
x = np.arange(0, math.pi*2, 0.05)
y = np.tan(x)
plt.plot(x, y)
plt.xlabel("angle")
plt.ylabel("Tan value")
plt.title('Tan wave')
plt.show()

আউটপুট

উপরের কোড রান করলে নিচের গ্রাফ জেনারেট হবে:

পাইথনে গ্রাফ প্লটিং: matplotlib লাইব্রেরির ব্যবহার

মাল্টিপ্লট (একসাথে একাধিক প্লট)

একটি ক্যানভাসে একাধিক প্লট দেখানোর জন্য মাল্টিপল এক্সিস তৈরি করে ব্যবহার করা যায়।

উদাহরণ

import matplotlib.pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
fig = plt.figure()
axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8])  # প্রধান এক্সিস
axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3])  # ইনসেট এক্সিস
axes3 = fig.add_axes([0.2, 0.3, 0.2, 0.3])   # ইনসেট এক্সিস
axes1.plot(x, np.sin(x), 'b')
axes2.plot(x, np.cos(x), 'r')
axes3.plot(x, np.tan(x), 'g')
axes1.set_title('sine')
axes2.set_title("cosine")
axes3.set_title("tangent")
plt.show()

আউটপুট

উপরের কোড রান করলে তিনটি আলাদা প্লট একসাথে দেখাবে:

পাইথনে গ্রাফ প্লটিং: matplotlib লাইব্রেরির ব্যবহার

সাবপ্লটের গ্রিড

বিভিন্ন গ্রাফ ধারণকারী একটি গ্রিড তৈরি করতে subplot2grid ফাংশন ব্যবহার করা হয়। এক্সিস সাবধানে বেছে নিতে হয় যাতে সব সাবপ্লট গ্রিডে ফিট হয়। একটু ট্রায়-এন্ড-এরর লাগতে পারে।

উদাহরণ

import matplotlib.pyplot as plt
import numpy as np
a1 = plt.subplot2grid((3,3), (0,0), colspan=2)
a2 = plt.subplot2grid((3,3), (0,2), rowspan=3)
a3 = plt.subplot2grid((3,3), (1,0), rowspan=2, colspan=2)
x = np.arange(1, 10)
a2.plot(x, x*x, 'r')
a2.set_title('square')
a1.plot(x, np.exp(x), 'b')
a1.set_title('exp')
a3.plot(x, np.log(x), 'g')
a3.set_title('log')
plt.tight_layout()
plt.show()

আউটপুট

উপরের কোড রান করলে গ্রিড আকারে তিনটি সাবপ্লট দেখাবে:

পাইথনে গ্রাফ প্লটিং: matplotlib লাইব্রেরির ব্যবহার

কন্টুর প্লট

কন্টুর প্লট (লেভেল প্লট) একটি ৩-ডি সারফেসকে ২-ডি প্লেনে দেখানোর পদ্ধতি। এখানে দুটি প্রিডিক্টর ভেরিয়েবল X এবং Y ব 이름으로 Y-অক্ষে এবং রেসপন্স ভেরিয়েবল Z কন্টুর হিসেবে দেখানো হয়। Matplotlib-এ contour() এবং contourf() ফাংশন রয়েছে যা যথাক্রমে কন্টুর লাইন এবং ফিল্ড কন্টুর আঁকে।

উদাহরণ

import numpy as np
import matplotlib.pyplot as plt
xlist = np.linspace(-3.0, 3.0, 100)
ylist = np.linspace(-3.0, 3.0, 100)
X, Y = np.meshgrid(xlist, ylist)
Z = np.sqrt(X**2 + Y**2)
fig, ax = plt.subplots(1, 1)
cp = ax.contourf(X, Y, Z)
fig.colorbar(cp)  # কালারবার যোগ
ax.set_title('Filled Contours Plot')
ax.set_ylabel('y (cm)')
plt.show()

আউটপুট

উপরের কোড রান করলে ফিল্ড কন্টুর প্লট দেখাবে:

পাইথনে গ্রাফ প্লটিং: matplotlib লাইব্রেরির ব্যবহার

  1. পাইথনে ডায়रेक्टেড গ্রাফকে উল্টে ফেলার প্রোগ্রাম

  2. পাইথনে SunPy ব্যবহার করে সৌর ছবি প্লট করা

  3. পাইথন Plotly ব্যবহার করে জিওগ্রাফিক্যাল প্লটিং (Geographical Plotting)

  4. পাইথনে SunPy ব্যবহার করে সৌর ছবি প্লট করা