Matplotlib (chizish) kutubxonasi
Kirish
SI (sun’iy intellekt), statistik tahlil va umumiy data-analitikada natijalarni tez va aniq ko‘rsatish juda muhim. Matplotlib — Python’da grafiklar chizish uchun eng mashhur kutubxonalardan biri.
Ushbu bo‘limda biz matplotlib.pyplot yordamida quyidagilarni o‘rganamiz:
chiziqli grafik (line plot)
nuqtali grafik (scatter)
ustunli grafik (bar)
gistogramma (hist)
bir nechta grafikni bitta oynada (
subplot/subplots)bezash: sarlavha, o‘qlar nomi, legenda, grid
saqlash:
savefig
Ko‘pchilik misollarda NumPy ham kerak bo‘ladi.
[1]:
import numpy as np
import matplotlib.pyplot as plt
1. Eng sodda chiziqli grafik
plt.plot(x, y) — ikki o‘lchamli chiziqli grafik.
[2]:
x = np.arange(0, 10)
y = x ** 2
plt.plot(x, y)
plt.title("y = x^2")
plt.xlabel("x")
plt.ylabel("y")
plt.grid(True)
plt.show()
2. Rang, chiziq turi, marker
Ko‘p ishlatiladigan sozlamalar: - color= (rang) - linestyle= ('-', '--', ':') - marker= ('o', '.', 'x', …) - linewidth= (qalinlik) - label= (legend uchun)
[3]:
x = np.linspace(0, 2*np.pi, 50)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, color='tab:blue', linestyle='-', marker='o', linewidth=2, label='sin(x)')
plt.plot(x, y2, color='tab:orange', linestyle='--', marker='x', linewidth=2, label='cos(x)')
plt.title('Sin va Cos')
plt.xlabel('x')
plt.ylabel('qiymat')
plt.legend()
plt.grid(True)
plt.show()
3. Nuqtali grafik (Scatter)
Scatter ko‘pincha alomatlar orasidagi bog‘liqlikni ko‘rish uchun ishlatiladi.
[4]:
rng = np.random.default_rng(42)
x = rng.normal(loc=0.0, scale=1.0, size=200)
y = 2*x + rng.normal(0.0, 0.5, size=200)
plt.scatter(x, y, s=25, alpha=0.7)
plt.title('Scatter: y ≈ 2x + shovqin')
plt.xlabel('x')
plt.ylabel('y')
plt.grid(True)
plt.show()
4. Ustunli grafik (Bar)
Kategoriyalar bo‘yicha qiymatlarni solishtirish uchun.
[5]:
cats = ['A', 'B', 'C', 'D']
vals = [12, 7, 15, 9]
plt.bar(cats, vals, color='tab:green')
plt.title('Ustunli grafik')
plt.xlabel('Kategoriya')
plt.ylabel('Qiymat')
plt.grid(axis='y', linestyle=':')
plt.show()
5. Gistogramma (Histogram)
Ma’lumot taqsimotini ko‘rish uchun.
bins— nechta bo‘lakka bo‘lishdensity=True— ehtimollik zichligi ko‘rinishida
[6]:
data = rng.normal(0, 1, size=5000)
plt.hist(data, bins=30, color='tab:purple', alpha=0.8)
plt.title('Gistogramma (normal taqsimotga o‘xshash)')
plt.xlabel('Qiymat')
plt.ylabel('Soni')
plt.grid(axis='y', linestyle=':')
plt.show()
6. Bir nechta grafik: subplots
fig, ax = plt.subplots(...) usuli odatda eng qulay yo‘l hisoblanadi.
fig— figura (umumiy oynacha)ax— o‘qlar (har bir grafik joyi)
[7]:
x = np.linspace(0, 2*np.pi, 200)
fig, ax = plt.subplots(1, 2, figsize=(10, 4))
ax[0].plot(x, np.sin(x), color='tab:blue')
ax[0].set_title('sin(x)')
ax[0].set_xlabel('x')
ax[0].set_ylabel('qiymat')
ax[0].grid(True)
ax[1].plot(x, np.cos(x), color='tab:orange')
ax[1].set_title('cos(x)')
ax[1].set_xlabel('x')
ax[1].grid(True)
plt.tight_layout()
plt.show()
7. Grafikni saqlash
plt.savefig(...) — grafikni faylga yozadi.
Eslatma: ko‘pincha savefig ni show() dan oldin chaqirgan yaxshi.
[8]:
x = np.linspace(0, 5, 200)
y = np.exp(-x)
plt.figure(figsize=(6, 4))
plt.plot(x, y, label='exp(-x)')
plt.title('Saqlash misoli')
plt.xlabel('x')
plt.ylabel('y')
plt.grid(True)
plt.legend()
# Faylga saqlash (ishchi katalogga yoziladi)
plt.savefig('matplot_example.svg', bbox_inches='tight')
plt.show()
8. Amaliy maslahatlar
Grafikni o‘qish oson bo‘lishi uchun
title,xlabel,ylabelni doim qo‘shing.Taqqoslash bo‘lsa
legend()ishlating.Ko‘p grafik bo‘lsa
subplotsvatight_layout()ishlating.Ma’lumot katta bo‘lsa scatter’da
alphavasparametrlarini moslang.