IlmHamroh
Data Science va sun'iy intellekt/Vizualizatsiya11/14-dars18 daqiqa
Mundarija (22)

5.11-dars: Rang, uslub va bezash

5-QISM — VIZUALIZATSIYA · 11-dars


1. Kirish va motivatsiya

Grafik ma'lumotni ko'rsatadi — lekin chiroyli va tushunarli bo'lishi ham muhim. Rang (ma'noni ajratadi), uslub (butun ko'rinish), bezash (yorliq, izoh, grid) — grafikni professional va o'qilishi oson qiladi. 5.1-darsda asosiy bezash (sarlavha, o'q nomlari, legend); endi chuqurroq: rang tanlash (ma'noli — ketma-ket/kategoriya/divergent), uslub (plt.style), izoh (annotate — muhim nuqtaga o'q), grid, matn. Data Scientist grafikni boshqalar (rahbar, jamoa) uchun tayyorlaganda bu muhim — chiroyli grafik xabarni yetkazadi. Nega muhim? (1) Rang ma'no — to'g'ri rang (ketma-ket/kategoriya); (2) O'qilish — bezash (yorliq, izoh); (3) Professional — uslub (butun ko'rinish). Bu dars rang, uslub va bezashni o'rgatadi — chiroyli va tushunarli grafik.

Rang, uslub, bezash — chiroyli/tushunarli grafik: rang (color=, cmap= — ma'noli: ketma-ket/kategoriya/divergent), uslub (plt.style.use("seaborn") yoki sns.set_theme — butun ko'rinish), izoh (ax.annotate — muhim nuqtaga o'q + matn), grid (ax.grid — to'r; o'qish oson), matn (ax.text — grafikda yozuv), yorliq (5.1 — sarlavha, o'q nomlari, legend). Foydalanish: chiroyli, o'qilish, professional. Bu 5.1 (bezash asoslari), 5.7 (Seaborn uslub) bilan bog'liq. Rang, uslub, bezash — chiroyli grafik. Ma'no. O'qilish.

Real vaziyat. Data Scientist savdo trendini rahbarga ko'rsatmoqchi. Bezasiz grafik: chiziq (rang yo'q, sarlavha yo'q, o'q nomi yo'q — rahbar tushunmaydi). Bezalgan grafik: plt.style.use("seaborn-v0_8") (chiroyli uslub), ax.plot(oy, savdo, color="steelblue", linewidth=2) (rang, qalinlik), ax.set_title("2024 savdo o'sishi") + ax.set_xlabel/ylabel (5.1 — kontekst), ax.annotate("eng yuqori", xy=(11, 480), ...) (izoh — muhim nuqta o'q), ax.grid(alpha=0.3) (to'r — o'qish). Rahbar darhol tushundi (o'sish trendi, eng yuqori oy — izoh; professional). Data Scientist xabarni yetkazdi (rang, uslub, bezash — chiroyli, tushunarli). Rang/uslub/bezash — xabar yetkazadi.

Bu darsda rang, uslub va bezashni o'rganamiz.

Bu darsda:

  • Rang (ma'noli — turlari)
  • Izoh (annotate — muhim nuqta)
  • Uslub (plt.style)
  • Grid va matn
  • Rang xaritasi (cmap)
  • Bezash amaliyoti
  • Bezash tuzoqlari
  • Amaliy: bezash modeli

ℹ Misollar real matplotlib bilan (Agg — grafik xususiyatlari matn bilan tekshiriladi) ishlaydi.


2. Nazariya — chuqur tushuntirish

2.1. Rang (ma'noli — turlari)

Ma'noli rang:

python
import matplotlib.pyplot as plt

# color= — bitta rang (nom, hex, RGB)
ax.plot(x, y, color="steelblue")

# Rang TURLARI (ma'noli tanlash):
#   ketma-ket (sequential) — kam→ko'p (viridis, Blues) — miqdor
#   kategoriya (qualitative) — guruh (tab10) — turli guruh
#   divergent — manfiy/musbat (coolwarm) — 0 markaz

Rang (ma'noli — turlari) — to'g'ri rang: color= (bitta rang — nom "steelblue", hex "#1f77b4", RGB); rang turlari (ma'noli tanlash): ketma-ket (sequential — kam→ko'p; viridis, Blues; miqdor — zichlik, harorat), kategoriya (qualitative — guruh; tab10; turli guruh — shahar, jins), divergent (manfiy/musbat; coolwarm; 0 markaz — korrelyatsiya 5.8, farq). Sabab: rang ma'no tashiydi (noto'g'ri rang — chalg'itadi; miqdorga kategoriya rang — noto'g'ri idrok); ma'noli (miqdor — ketma-ket; guruh — kategoriya; farq — divergent). Ketma-ket (miqdor), kategoriya (guruh), divergent (0 markaz). Rang — ma'noli (turiga qarab). Ma'no. Turi.

2.2. Izoh (annotate — muhim nuqta)

O'q + matn:

python
import matplotlib.pyplot as plt

# annotate — muhim nuqtaga o'q + matn
ax.annotate("eng yuqori",
            xy=(11, 480),          # ko'rsatiladigan nuqta
            xytext=(8, 450),       # matn joyi
            arrowprops={"arrowstyle": "->"})

# text — oddiy yozuv (o'qsiz)
ax.text(2, 400, "izoh")

Izoh (annotate — muhim nuqta) — o'q + matn: ax.annotate(matn, xy=, xytext=, arrowprops=) — muhim nuqtaga o'q + matn (xy — ko'rsatiladigan nuqta, xytext — matn joyi, arrowprops — o'q); ax.text(x, y, matn) — oddiy yozuv (o'qsiz). Sabab: grafikda muhim nuqta (eng yuqori, o'zgarish, anomaliya) — izoh bilan ajratish (o'quvchi e'tibori); "grafik o'zi so'zlasin" (izoh — kalit xabar); annotate (o'q — nuqtaga ishora), text (yozuv — joy). xy (nuqta), xytext (matn), arrowprops (o'q). Izoh — annotate (o'q + matn; muhim nuqta). Izoh. O'q.

2.3. Uslub (plt.style)

Uslub (plt.style) — butun ko'rinish: plt.style.use("uslub") (butun grafik ko'rinishi — rang, shrift, grid, fon; "seaborn-v0_8", "ggplot", "dark_background"); sns.set_theme() (Seaborn uslub — 5.7). Sabab: standart Matplotlib oddiy (chiroyli emas); uslub butun ko'rinish (bir buyruq — hamma grafik chiroyli); izchillik (barcha grafik bir uslub — professional). plt.style.available (mavjud uslublar), plt.style.use (tanlash), sns.set_theme (Seaborn). Uslub — butun ko'rinish (plt.style.use; izchillik). Uslub. Ko'rinish.

2.4. Grid va matn

Grid va matn — o'qish oson: ax.grid(True, alpha=0.3) (to'r — qiymat o'qish oson; alpha — shaffoflik, xira), ax.text(x, y, matn) (grafikda yozuv — izoh, qiymat), ax.axhline/axvline (gorizontal/vertikal chiziq — o'rtacha, chegara; ax.axhline(y=0, color="gray")). Sabab: grid — qiymat o'qish oson (nuqta qaysi qiymat — to'r yordami; lekin alpha past — chalg'itmasin); matn/chiziq — kontekst (o'rtacha chiziq — axhline; chegara). grid (to'r — o'qish), text (yozuv), axhline/axvline (chiziq — o'rtacha/chegara). Grid/matn — o'qish oson (to'r, yozuv, chiziq). Grid. O'qish.

2.5. Rang xaritasi (cmap)

Rang xaritasi (cmap) — miqdor → rang: cmap= (rang xaritasi — qiymat rangga; scatter c= + cmap, heatmap 5.8, hist2d); plt.colorbar() (rang shkalasi — qaysi rang qaysi qiymat). Sabab: uchinchi o'lcham (scatter — x, y, + rang miqdor; c=zichlik, cmap="viridis"); rang miqdorni ko'rsatadi (to'q ko'p, och kam — ketma-ket); colorbar (rang → qiymat — o'qish). viridis (ketma-ket — idrok to'g'ri; standart), coolwarm (divergent — 5.8), colorbar (shkala). Rang xaritasi — cmap (miqdor → rang; colorbar). cmap. Miqdor.

2.6. Bezash amaliyoti

Bezash amaliyoti: uslub (plt.style.use("seaborn-v0_8") — boshda; chiroyli); rang (ma'noli — ketma-ket/kategoriya/divergent; color=/cmap=); 5.1 bezash (set_title, set_xlabel, set_ylabel, legend — kontekst); izoh (annotate — muhim nuqta; kalit xabar); grid (grid(alpha=0.3) — o'qish); chiziq (axhline — o'rtacha/chegara); saqlash (savefig(dpi=150, bbox_inches="tight") — sifat). Tuzoqlar: rang noto'g'ri (miqdorga kategoriya), rang ko'p (chalkash), grid quyuq (chalg'itadi), izoh ko'p (band), qizil/yashil (rang ko'rlik). Amaliyot — uslub, rang, izoh, grid. Chiroyli. O'qilish.

2.7. Bezash tuzoqlari

Bezash asosiy tuzoqlari: rang noto'g'ri turi (miqdorga kategoriya rang (tab10) — noto'g'ri idrok (miqdor tartibli — ketma-ket viridis); guruhga ketma-ket — guruh tartibli ko'rinadi (noto'g'ri)); rang ko'p (>7 rang — ajratib bo'lmas (chalkash); kam rang, yoki guruhlash); rang ko'rlik (qizil/yashil — rang ko'rlik (8% erkak) ajratolmaydi; viridis (rang ko'r do'st), yoki shakl/naqsh qo'sh); grid quyuq (grid(True) — quyuq to'r (chalg'itadi — ma'lumot ustidan); alpha=0.3 — xira); jet cmap (jet — eski (idrok noto'g'ri — sun'iy chegara; viridis — bir tekis idrok)); izoh ko'p (ko'p annotate/text — grafik band (o'qib bo'lmas); kalit (1-3) izoh); 3D/effekt (3D pie, soya, gradient — chalg'itadi (ma'lumot emas — bezak; 5.13 aldash); sodda); rang standart (rang ma'nosiz tanlov (chiroyli deb) — ma'noli (brend, konvensiya — qizil yomon/to'xta, yashil yaxshi)). Sabab: bezash idrok/halollik nozik (rang turi, ko'rlik, band, effekt — chalg'ish yoki noto'g'ri). Yechim: ma'noli rang (turi), rang ko'r do'st, kam izoh, effektsiz. Tuzoqlar — rang turi, ko'rlik, band, effekt.

2.8. Bezash — chiroyli va tushunarli grafik

Bezash asosiy g'oyasi — chiroyli va tushunarli grafik: grafik ma'lumotni ko'rsatadi (5.1-5.10), lekin chiroyli (professional) va tushunarli (o'qilish oson) bo'lish ham muhim (ayniqsa boshqalar uchun — rahbar, jamoa). Rang (ma'noli — ketma-ket miqdor, kategoriya guruh, divergent farq; color=/cmap=), uslub (plt.style.use/sns.set_theme — butun ko'rinish, izchillik), izoh (annotate — muhim nuqta o'q + matn; kalit xabar), grid (grid(alpha=0.3) — o'qish), matn/chiziq (text, axhline — kontekst), 5.1 bezash (sarlavha, o'q nomlari, legend — kontekst). Foydalanish: chiroyli (uslub — professional), o'qilish (grid, yorliq — oson), xabar (izoh — kalit nuqta). Tuzoqlar: rang noto'g'ri turi (miqdorga kategoriya), rang ko'p (chalkash), rang ko'rlik (qizil/yashil — viridis), grid quyuq (alpha), jet cmap (viridis), izoh ko'p (band), 3D/effekt (chalg'itadi — 5.13). Bu 5.1 (bezash asoslari) ustida va 5.7 (Seaborn uslub), 5.8 (cmap), 5.13 (halollik) bilan. Bezash — chiroyli va tushunarli grafik (rang ma'noli, uslub, izoh — xabar yetkazadi). Chiroyli. O'qilish. Xabar.


3. Tez ma'lumotnoma

python
import matplotlib.pyplot as plt

# USLUB (butun ko'rinish — boshda):
plt.style.use("seaborn-v0_8")   # chiroyli
# plt.style.available — mavjud uslublar

# RANG (ma'noli tanlash):
ax.plot(x, y, color="steelblue", linewidth=2)
#   ketma-ket (viridis, Blues) — MIQDOR
#   kategoriya (tab10) — GURUH
#   divergent (coolwarm) — FARQ (0 markaz)

# IZOH (muhim nuqta):
ax.annotate("eng yuqori", xy=(11, 480), xytext=(8, 450),
            arrowprops={"arrowstyle": "->"})
ax.text(2, 400, "izoh")            # oddiy yozuv (o'qsiz)
ax.axhline(y=0, color="gray")      # gorizontal chiziq (o'rtacha)

# GRID va RANG XARITASI:
ax.grid(True, alpha=0.3)                        # to'r (xira)
sc = ax.scatter(x, y, c=zichlik, cmap="viridis")
plt.colorbar(sc)                                # rang shkalasi

fig.savefig("g.png", dpi=150, bbox_inches="tight")   # sifat
QOIDA: ma'noli rang · rang ko'r do'st (viridis) · kam izoh · effektsiz

Bezash xulosasi

Rang — ma'noli (ketma-ket miqdor, kategoriya guruh, divergent farq)
Izoh — annotate (o'q + matn; muhim nuqta), text (yozuv)
Uslub — plt.style.use (butun ko'rinish, izchillik)
Grid/cmap — grid(alpha) o'qish, cmap miqdor→rang (colorbar)
Chiroyli va tushunarli — xabar yetkazadi (rahbar, jamoa)

4. Batafsil misollar

Misollar real matplotlib bilan (Agg — grafik xususiyatlari matn bilan tekshiriladi) ishlaydi.

Misol 1 — Rang va uslub

python
"""Rang va uslub (real matplotlib)."""

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt


def main() -> None:
    print("=== 1. color= (bitta rang) ===")
    fig, ax = plt.subplots()
    liniya, = ax.plot([1, 2, 3], [2, 4, 6], color="steelblue", linewidth=2)
    print(f"  rang: {liniya.get_color()}")
    print(f"  qalinlik: {liniya.get_linewidth()}")

    print("\n=== 2. Rang turlari ===")
    print("  ketma-ket (viridis) — miqdor")
    print("  kategoriya (tab10) — guruh")
    print("  divergent (coolwarm) — farq (0 markaz)")

    print("\n=== 3. Uslublar mavjud ===")
    seaborn_bor = any("seaborn" in s for s in plt.style.available)
    print(f"  seaborn uslubi bor: {seaborn_bor}")

    print("\n=== 4. Tushuntirish ===")
    print("  rang ma'noli (turiga qarab), uslub butun ko'rinish")
    plt.close(fig)
    print("  ⭐ Rang (ma'noli) + uslub (ko'rinish)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. color= (bitta rang) ===
  rang: steelblue
  qalinlik: 2.0

=== 2. Rang turlari ===
  ketma-ket (viridis) — miqdor
  kategoriya (tab10) — guruh
  divergent (coolwarm) — farq (0 markaz)

=== 3. Uslublar mavjud ===
  seaborn uslubi bor: True

=== 4. Tushuntirish ===
  rang ma'noli (turiga qarab), uslub butun ko'rinish
  ⭐ Rang (ma'noli) + uslub (ko'rinish)

Nima ko'rsatdi: 2.1, 2.3-bo'limlar.

Misol 2 — Izoh (annotate)

python
"""Izoh: annotate (real matplotlib)."""

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt


def main() -> None:
    oy = list(range(1, 13))
    savdo = [100, 120, 140, 180, 220, 280, 340, 400, 380, 420, 480, 460]

    print("=== 1. Grafik ===")
    fig, ax = plt.subplots()
    ax.plot(oy, savdo, color="steelblue", linewidth=2)

    print("\n=== 2. Eng yuqori nuqta ===")
    eng_yuqori = max(savdo)
    eng_oy = oy[savdo.index(eng_yuqori)]
    print(f"  eng yuqori: {eng_oy}-oy, {eng_yuqori}")

    print("\n=== 3. annotate (o'q + matn) ===")
    ax.annotate("eng yuqori", xy=(eng_oy, eng_yuqori),
                xytext=(eng_oy - 3, eng_yuqori - 40),
                arrowprops={"arrowstyle": "->"})
    print(f"  izohlar (annotation): {len(ax.texts)}")

    print("\n=== 4. text (oddiy yozuv) ===")
    ax.text(2, 400, "2024")
    print(f"  jami matn: {len(ax.texts)}")
    plt.close(fig)
    print("  ⭐ Izoh — annotate (muhim nuqta o'q)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Grafik ===

=== 2. Eng yuqori nuqta ===
  eng yuqori: 11-oy, 480

=== 3. annotate (o'q + matn) ===
  izohlar (annotation): 1

=== 4. text (oddiy yozuv) ===
  jami matn: 2
  ⭐ Izoh — annotate (muhim nuqta o'q)

Nima ko'rsatdi: 2.2-bo'lim.

Misol 3 — Grid va chiziq

python
"""Grid va chiziq (real matplotlib/numpy)."""

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np


def main() -> None:
    np.random.seed(0)
    qiymat = np.random.normal(50, 10, 50)

    print("=== 1. Grid (alpha — xira) ===")
    fig, ax = plt.subplots()
    ax.plot(qiymat, color="steelblue")
    ax.grid(True, alpha=0.3)
    print("  grid: alpha=0.3 (xira — chalg'itmaydi)")

    print("\n=== 2. axhline (o'rtacha chiziq) ===")
    ortacha = qiymat.mean()
    ax.axhline(y=ortacha, color="red", linestyle="--")
    print(f"  o'rtacha chiziq: y={ortacha.round(1)}")

    print("\n=== 3. Chiziqlar soni ===")
    print(f"  chiziqlar (plot + axhline): {len(ax.lines)}")

    print("\n=== 4. Tushuntirish ===")
    print("  grid (o'qish), axhline (o'rtacha — kontekst)")
    plt.close(fig)
    print("  ⭐ Grid + chiziq (o'qish oson)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Grid (alpha — xira) ===
  grid: alpha=0.3 (xira — chalg'itmaydi)

=== 2. axhline (o'rtacha chiziq) ===
  o'rtacha chiziq: y=51.4

=== 3. Chiziqlar soni ===
  chiziqlar (plot + axhline): 2

=== 4. Tushuntirish ===
  grid (o'qish), axhline (o'rtacha — kontekst)
  ⭐ Grid + chiziq (o'qish oson)

Nima ko'rsatdi: 2.4-bo'lim.

Misol 4 — Rang xaritasi (cmap)

python
"""Rang xaritasi: cmap (real matplotlib/numpy)."""

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np


def main() -> None:
    np.random.seed(0)
    x = np.random.uniform(0, 10, 100)
    y = np.random.uniform(0, 10, 100)
    zichlik = x + y   # uchinchi o'lcham (rang)

    print("=== 1. scatter + cmap (uchinchi o'lcham) ===")
    fig, ax = plt.subplots()
    sc = ax.scatter(x, y, c=zichlik, cmap="viridis")
    print("  x, y, + rang (zichlik) — 3 o'lcham")

    print("\n=== 2. viridis (idrok to'g'ri) ===")
    print("  viridis — bir tekis idrok (jet emas)")

    print("\n=== 3. colorbar (rang shkalasi) ===")
    cbar = plt.colorbar(sc, ax=ax)
    print(f"  colorbar bor: {cbar is not None}")

    print("\n=== 4. Rang → qiymat ===")
    print(f"  eng past: {zichlik.min().round(1)} (to'q siyoh)")
    print(f"  eng baland: {zichlik.max().round(1)} (sariq)")
    plt.close(fig)
    print("  ⭐ cmap — miqdor → rang (colorbar)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. scatter + cmap (uchinchi o'lcham) ===
  x, y, + rang (zichlik) — 3 o'lcham

=== 2. viridis (idrok to'g'ri) ===
  viridis — bir tekis idrok (jet emas)

=== 3. colorbar (rang shkalasi) ===
  colorbar bor: True

=== 4. Rang → qiymat ===
  eng past: 1.5 (to'q siyoh)
  eng baland: 17.0 (sariq)
  ⭐ cmap — miqdor → rang (colorbar)

Nima ko'rsatdi: 2.5-bo'lim.


5. To'g'ri va noto'g'ri tushunishlar

Noto'g'ri fikr To'g'risi
"rang chiroyli uchun" Ma'noli (miqdor/guruh/farq)
"har rang OK" Turiga mos (ketma-ket/kategoriya)
"qizil/yashil yaxshi" Rang ko'rlik (viridis)
"grid quyuq yaxshi" alpha (xira)
"jet chiroyli" viridis (idrok to'g'ri)
"ko'p izoh yaxshi" Kam (kalit — band)
"3D chiroyli" Chalg'itadi (5.13)
"uslub ixtiyoriy" Izchillik (professional)

6. Keng tarqalgan xatolar va yechimlari

1. Rang noto'g'ri turi

python
ax.scatter(x, y, c=miqdor, cmap="tab10")   # kategoriya (miqdor)  # ⚠️
ax.scatter(x, y, c=miqdor, cmap="viridis")   # ketma-ket          # ✅

2. Rang ko'rlik

python
ax.plot(x, y1, "green"); ax.plot(x, y2, "red")   # rang ko'rlik   # ⚠️
ax.plot(x, y1); ax.plot(x, y2, linestyle="--")   # shakl ham      # ✅

3. Grid quyuq

python
ax.grid(True)   # quyuq (chalg'itadi)                              # ⚠️
ax.grid(True, alpha=0.3)   # xira                                  # ✅

4. jet cmap

python
ax.scatter(..., cmap="jet")   # idrok noto'g'ri                    # ⚠️
ax.scatter(..., cmap="viridis")   # bir tekis                     # ✅

5. Izoh ko'p

python
# 20 annotate → grafik band                                        # ⚠️
# 1-3 kalit izoh                                                    # ✅

6. 3D/effekt

python
ax.pie(..., shadow=True, explode=...)   # bezak (chalg'itadi)      # ⚠️
ax.bar(...)   # soddda (ma'lumot)                                  # ✅

7. savefig sifat

python
fig.savefig("g.png")   # past sifat, kesilgan                     # ⚠️
fig.savefig("g.png", dpi=150, bbox_inches="tight")               # ✅

7. Integratsiya — bu bilim qayerda kerak bo'ladi

  • 5.1-dars (o'tilgan): Bezash asoslari
  • 5.7-dars (o'tilgan): Seaborn (uslub)
  • 5.8-dars (o'tilgan): cmap (heatmap)
  • 5.13-dars: Yolg'on grafiklar (effekt — halollik)
  • 5.14-dars: Amaliy loyiha (professional)

8. Eng yaxshi amaliyotlar

  1. Uslub — plt.style.use (izchillik).

  2. Rang — ma'noli (turiga mos).

  3. Rang ko'r do'st — viridis (jet emas).

  4. Izoh — annotate (kalit — 1-3).

  5. Grid — alpha=0.3 (xira).

  6. cmap — miqdor (colorbar).

  7. Effektsiz — soddda (ma'lumot).

  8. Saqlash — dpi, bbox_inches.


9. Amaliy topshiriq

Vazifa 1: Bashorat qiling

python
1.  # rang nega muhim?
2.  # ketma-ket rang?
3.  # kategoriya rang?
4.  # divergent rang?
5.  # annotate nima?
6.  # text vs annotate?
7.  # uslub nima?
8.  # grid alpha?
9.  # cmap nima?
10. # jet muammosi?
11. # rang ko'rlik?
12. # nega bezash muhim?
Javoblar
  1. Ma'no tashiydi (idrok)
  2. Miqdor (viridis, Blues)
  3. Guruh (tab10)
  4. Farq (coolwarm, 0 markaz)
  5. Muhim nuqta o'q + matn
  6. text — o'qsiz, annotate — o'q
  7. Butun ko'rinish (izchillik)
  8. Xira (chalg'itmaydi)
  9. Miqdor → rang (colorbar)
  10. Idrok noto'g'ri (viridis)
  11. Qizil/yashil (viridis)
  12. Chiroyli, tushunarli (xabar)

Vazifa 2: Xatolarni tuzating

python
1.  ax.scatter(x, y, c=miqdor, cmap="tab10")

2.  ax.plot(x, y1, "green"); ax.plot(x, y2, "red")

3.  ax.grid(True)   # quyuq

4.  ax.scatter(..., cmap="jet")

5.  ax.pie(..., shadow=True, explode=...)
Javoblar
python
1.  cmap="viridis" (ketma-ket)

2.  linestyle="--" (shakl ham — rang ko'rlik)

3.  alpha=0.3

4.  cmap="viridis"

5.  ax.bar(...) (soddda)

Vazifa 3: Rang

Modellang:

  1. Ketma-ket (miqdor)
  2. Kategoriya (guruh)
  3. Divergent (farq)
  4. Rang ko'r do'st

Vazifa 4: Izoh

Modellang:

  1. annotate (o'q)
  2. text (yozuv)
  3. axhline (chiziq)
  4. Kalit (kam)

Vazifa 5: Uslub

Modellang:

  1. plt.style
  2. Butun ko'rinish
  3. Izchillik
  4. Professional

Vazifa 6: Integratsiya

Modellang:

  1. Bezash (5.1)
  2. Seaborn (5.7)
  3. Halollik (5.13)
  4. Xabar

Vazifa 7: O'ylash

Rang grafikda ma'no tashiydi — lekin noto'g'ri rang tanlash (miqdorga kategoriya rang, jet cmap, qizil/yashil) idrokni buzadi yoki rang ko'rligi bo'lgan odamlarga (erkaklarning ~8%) ma'lumotni yashiradi. Nima uchun "rang yordamchi kanal" (yagona kanal emas) tamoyili muhim, va Data Scientist rangdan qanday mas'uliyat bilan foydalanadi?

Javob

Qisqa javob: Rang ma'no tashiydi, lekin noto'g'ri rang idrokni buzadi yoki rang ko'rligi bo'lganlarga yashiradi; "rang yordamchi kanal" (yagona emas) tamoyili muhim, Data Scientist rangdan mas'uliyat bilan foydalanadi, chunki: (1) rang universal emas — rang ko'rlik (erkaklar ~8%, ayollar ~0.5% — qizil/yashil ajratolmaydi; deuteranopia); qizil/yashil (eng ko'p — ajratib bo'lmas); rang yagona kanal bo'lsa — bu odamlar ma'lumotni yo'qotadi; (2) yordamchi kanal — rang + boshqa (shakl, naqsh, joylashuv, yorliq; rang ko'r ham shakl/yorliq ko'radi); "ikki kanal" (rang + shakl — ortiqchalik, ishonchli); (3) idrok — rang turi (miqdor — ketma-ket viridis; guruh — kategoriya tab10; noto'g'ri — jet (sun'iy chegara), kategoriya miqdorga (tartib noto'g'ri)); (4) kontekst — rang konvensiya (qizil — yomon/to'xta/manfiy; yashil — yaxshi; teskari — chalkash; brend rang). "Nega yordamchi kanal": (a) kirish imkoni (accessibility — hamma o'qiy olsin; rang ko'r, oq-qora chop; rang yagona — ba'zi yo'qotadi); (b) ortiqchalik (rang + shakl/yorliq — bir kanal yo'qolsa, boshqa; ishonchli); (c) oq-qora (chop/nusxa — rang yo'qoladi; shakl/yorliq qoladi); (d) idrok chegara (rang taxminiy (aniq son emas); yorliq — aniq). "Mas'uliyat bilan": (1) rang ko'r do'st (viridis, cividis — rang ko'r idrok to'g'ri; qizil/yashil emas); (2) ikki kanal (rang + shakl/naqsh/yorliq — ortiqchalik); (3) rang turi (miqdor — ketma-ket; guruh — kategoriya; farq — divergent; mos); (4) kam rang (>7 — chalkash; kam yoki guruhlash); (5) tekshir (oq-qora — o'qiladimi; rang ko'r simulyator); (6) yorliq (rang + to'g'ridan yorliq — legend emas, chiziq yonida). "Nega muhim": (1) kirish (hamma — rang ko'r, chop); (2) idrok (to'g'ri rang — to'g'ri xabar); (3) halollik (rang aldamas — 5.13; jet soxta chegara); (4) professional (rang ma'noli — jiddiy). Saboqlar: rang universal emas (rang ko'rlik — 8%); yordamchi kanal (rang + shakl/yorliq — ortiqchalik); rang turi (miqdor/guruh/farq — mos); mas'uliyat (rang ko'r do'st, ikki kanal, kam rang). To'g'ri: rang yordamchi (yagona emas — + shakl/yorliq); rang ko'r do'st (viridis); rang turi (mos); kirish imkoni (hamma — accessibility). Muvozanat: rang kuchli (ma'no — idrok tez) + mas'uliyat (rang ko'r, yordamchi, mos — hamma o'qiy olsin). Bu Data Science vizualizatsiya etikasi asosiy (rang ma'noli + kirish imkoni; rang ko'r do'st; yordamchi kanal; 5.13 halollik). Rang — yordamchi kanal (mas'uliyat — rang ko'r do'st, ikki kanal, mos turi).

1. Nega rang yordamchi kanal

  • Rang universal emas (rang ko'rlik — 8%)
  • Kirish imkoni (accessibility — hamma)
  • Ortiqchalik (rang + shakl/yorliq — ishonchli)
  • Oq-qora (chop — rang yo'qoladi)

2. Nega mas'uliyat bilan

  • Rang ko'r do'st (viridis, qizil/yashil emas)
  • Ikki kanal (rang + shakl/naqsh/yorliq)
  • Rang turi (miqdor/guruh/farq — mos)
  • Kam rang (>7 chalkash)

3. Rang yagona vs yordamchi

Yagona kanal (xato) Yordamchi kanal
Rang ko'r yo'qotadi Rang + shakl/yorliq
Oq-qora yo'qoladi Ortiqchalik
jet/qizil-yashil viridis, mos turi

4. Saboqlar

  1. Rang universal emas (rang ko'rlik)
  2. Yordamchi kanal (rang + shakl/yorliq)
  3. Rang turi (miqdor/guruh/farq — mos)
  4. Mas'uliyat (rang ko'r do'st, kirish)

5. Xulosa

  1. Rang ma'no tashiydi (idrok) lekin universal emas (rang ko'rlik)
  2. Yordamchi kanal (yagona emas — + shakl/yorliq)
  3. Rang ko'r do'st (viridis), mos turi (miqdor/guruh)
  4. Mas'uliyat (kirish imkoni — hamma o'qiy olsin)

Nimani mustahkamlaydi: 2.1, 2.7-bo'limlar.


Xulosa

Bu darsda rang, uslub va bezashni o'rgandik.

Eng muhim uch fikr:

  1. Rang va izoh. Rang ma'no tashiydi — ma'noli tanlash (turiga mos): ketma-ket (miqdor — viridis, Blues), kategoriya (guruh — tab10), divergent (farq — coolwarm, 0 markaz; 5.8). Izoh — ax.annotate(matn, xy=, xytext=, arrowprops=) (muhim nuqta o'q + matn; kalit xabar), ax.text (oddiy yozuv — o'qsiz), ax.axhline/axvline (chiziq — o'rtacha/chegara).

  2. Uslub, grid, cmap. Uslub — plt.style.use("seaborn-v0_8")/sns.set_theme() (butun ko'rinish — izchillik, professional). Grid — ax.grid(True, alpha=0.3) (to'r — o'qish; alpha xira — chalg'itmasin). Rang xaritasi — cmap= (miqdor → rang; scatter c= + cmap, heatmap 5.8) + plt.colorbar (shkala).

  3. Chiroyli va tushunarli. Bezash — grafikni chiroyli (professional) va tushunarli (o'qilish) qiladi (ayniqsa boshqalar uchun — rahbar, jamoa; xabar yetkazadi). Tuzoqlar: rang noto'g'ri turi (miqdorga kategoriya), rang ko'p (chalkash), rang ko'rlik (qizil/yashil — viridis; rang yordamchi kanal — + shakl/yorliq), grid quyuq (alpha), jet cmap (viridis), izoh ko'p (band), 3D/effekt (chalg'itadi — 5.13 halollik).

Keyingi darsda yaxshi grafik tamoyillarini o'rganamiz: qanday grafik yaxshi (aniq xabar, soddalik, to'g'ri tur), qaysi grafik qachon (chiziq/ustun/scatter/pie — mos tanlov), "data-ink" nisbati (ortiqcha bezak kam).

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
5.11-dars: Rang, uslub va bezash — IlmHamroh