{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Topshiriqlar 2 (Matplotlib)\n", "\n", "Quyidagi mashqlar `source/libs1/matplot_lib.ipynb` mavzulari asosida tuzilgan.\n", "\n", "## 1. Chiziqli grafik\n", "\n", "1. `x = np.arange(0, 21)` uchun quyidagi 3 funksiyani bitta grafikda chizing:\n", " - `y1 = x`\n", " - `y2 = x**2`\n", " - `y3 = x**3`\n", " Har bir chiziqqa `label` bering va `legend()` qo‘shing.\n", "2. `np.sin(x)` va `np.cos(x)` ni 0 dan `2π` gacha bo‘lgan oraliqda chizing (`np.linspace`).\n", " - sin: marker `'o'`, cos: marker `'x'`.\n", "3. Grafikga sarlavha (`title`), o‘qlar nomi (`xlabel`, `ylabel`) va `grid(True)` qo‘shing.\n", "\n", "## 2. Scatter\n", "\n", "4. `rng = np.random.default_rng(0)` bilan 300 ta nuqta yarating:\n", " - `x = rng.normal(size=300)`\n", " - `y = 3*x + rng.normal(scale=0.7, size=300)`\n", " Scatter chizing va `alpha` ni moslang.\n", "5. (Ixtiyoriy) `y` qiymatlariga qarab nuqtalarni ranglang (`c=`) va colorbar qo‘shing (`plt.colorbar()`).\n", "\n", "## 3. Bar\n", "\n", "6. Quyidagi kategoriyalar uchun ustunli grafik chizing:\n", " - `cats = ['Dush', 'Sesh', 'Chor', 'Pay', 'Jum', 'Shan', 'Yak']`\n", " - `vals = [5, 7, 6, 8, 9, 3, 4]`\n", " `grid(axis='y')` qo‘shing.\n", "7. Ustunlarning ustiga qiymatni yozib chiqing (har bir bar ustida `vals[i]` ko‘rinsin).\n", "\n", "## 4. Histogram\n", "\n", "8. `rng.normal(0, 1, size=10000)` uchun gistogramma chizing:\n", " - `bins=20`, keyin `bins=60` qilib solishtiring.\n", "9. `density=True` bilan gistogramma chizing va farqini izohlang (1–2 gap).\n", "\n", "## 5. Subplots\n", "\n", "10. 2x2 `subplots` yarating (`fig, ax = plt.subplots(2,2, figsize=(...))`) va quyidagilarni joylashtiring:\n", " - (0,0): `y=x**2` line plot\n", " - (0,1): scatter (4-masala)\n", " - (1,0): bar (6-masala)\n", " - (1,1): histogram (8-masala)\n", " Har bir subplotga kichik sarlavha bering va `tight_layout()` ishlating.\n", "\n", "## 6. Saqlash\n", "\n", "11. O‘zingiz yoqtirgan grafigingizni `plt.savefig('my_plot.svg', bbox_inches='tight')` bilan saqlang.\n", " - Fayl yaratilganini tasdiqlash uchun ishchi papkada bor-yo‘qligini tekshiring.\n", "\n", "## 7. Kichik loyiha (ixtiyoriy)\n", "\n", "12. 30 kunlik “kunlik o‘qish soati” ma’lumotini o‘zingiz generatsiya qiling (masalan, `rng.integers(0, 6, size=30)`).\n", " - Line plot: kun -> soat\n", " - Histogram: soat taqsimoti\n", " - Natija: o‘rtacha, min, max ni hisoblab, grafik sarlavhasida ko‘rsating.\n" ] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 5 }