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()
../_images/libs1_matplot_lib_3_0.png

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()
../_images/libs1_matplot_lib_5_0.png

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()
../_images/libs1_matplot_lib_7_0.png

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()
../_images/libs1_matplot_lib_9_0.png

5. Gistogramma (Histogram)

Ma’lumot taqsimotini ko‘rish uchun.

  • bins — nechta bo‘lakka bo‘lish

  • density=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()
../_images/libs1_matplot_lib_11_0.png

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()
../_images/libs1_matplot_lib_13_0.png

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()
../_images/libs1_matplot_lib_15_0.png

8. Amaliy maslahatlar

  • Grafikni o‘qish oson bo‘lishi uchun title, xlabel, ylabel ni doim qo‘shing.

  • Taqqoslash bo‘lsa legend() ishlating.

  • Ko‘p grafik bo‘lsa subplots va tight_layout() ishlating.

  • Ma’lumot katta bo‘lsa scatter’da alpha va s parametrlarini moslang.