পাইথনে 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()
আউটপুট
উপরের কোড রান করলে নিচের গ্রাফ জেনারেট হবে:

মাল্টিপ্লট (একসাথে একাধিক প্লট)
একটি ক্যানভাসে একাধিক প্লট দেখানোর জন্য মাল্টিপল এক্সিস তৈরি করে ব্যবহার করা যায়।
উদাহরণ
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()
আউটপুট
উপরের কোড রান করলে তিনটি আলাদা প্লট একসাথে দেখাবে:

সাবপ্লটের গ্রিড
বিভিন্ন গ্রাফ ধারণকারী একটি গ্রিড তৈরি করতে 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()
আউটপুট
উপরের কোড রান করলে গ্রিড আকারে তিনটি সাবপ্লট দেখাবে:

কন্টুর প্লট
কন্টুর প্লট (লেভেল প্লট) একটি ৩-ডি সারফেসকে ২-ডি প্লেনে দেখানোর পদ্ধতি। এখানে দুটি প্রিডিক্টর ভেরিয়েবল 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()
আউটপুট
উপরের কোড রান করলে ফিল্ড কন্টুর প্লট দেখাবে:
