Mundarija (22)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. Rang (ma'noli — turlari)
- 2.2. Izoh (annotate — muhim nuqta)
- 2.3. Uslub (plt.style)
- 2.4. Grid va matn
- 2.5. Rang xaritasi (cmap)
- 2.6. Bezash amaliyoti
- 2.7. Bezash tuzoqlari
- 2.8. Bezash — chiroyli va tushunarli grafik
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — Rang va uslub
- Misol 2 — Izoh (annotate)
- Misol 3 — Grid va chiziq
- Misol 4 — Rang xaritasi (cmap)
- 5. To'g'ri va noto'g'ri tushunishlar
- 6. Keng tarqalgan xatolar va yechimlari
- 7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 8. Eng yaxshi amaliyotlar
- 9. Amaliy topshiriq
- Xulosa
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:
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:
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
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 · effektsizBezash 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
"""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:
=== 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)
"""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:
=== 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
"""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:
=== 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)
"""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:
=== 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
ax.scatter(x, y, c=miqdor, cmap="tab10") # kategoriya (miqdor) # ⚠️
ax.scatter(x, y, c=miqdor, cmap="viridis") # ketma-ket # ✅2. Rang ko'rlik
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
ax.grid(True) # quyuq (chalg'itadi) # ⚠️
ax.grid(True, alpha=0.3) # xira # ✅4. jet cmap
ax.scatter(..., cmap="jet") # idrok noto'g'ri # ⚠️
ax.scatter(..., cmap="viridis") # bir tekis # ✅5. Izoh ko'p
# 20 annotate → grafik band # ⚠️
# 1-3 kalit izoh # ✅6. 3D/effekt
ax.pie(..., shadow=True, explode=...) # bezak (chalg'itadi) # ⚠️
ax.bar(...) # soddda (ma'lumot) # ✅7. savefig sifat
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
Uslub —
plt.style.use(izchillik).Rang — ma'noli (turiga mos).
Rang ko'r do'st —
viridis(jet emas).Izoh —
annotate(kalit — 1-3).Grid —
alpha=0.3(xira).cmap — miqdor (colorbar).
Effektsiz — soddda (ma'lumot).
Saqlash —
dpi,bbox_inches.
9. Amaliy topshiriq
Vazifa 1: Bashorat qiling
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
- Ma'no tashiydi (idrok)
- Miqdor (viridis, Blues)
- Guruh (tab10)
- Farq (coolwarm, 0 markaz)
- Muhim nuqta o'q + matn
- text — o'qsiz, annotate — o'q
- Butun ko'rinish (izchillik)
- Xira (chalg'itmaydi)
- Miqdor → rang (colorbar)
- Idrok noto'g'ri (viridis)
- Qizil/yashil (viridis)
- Chiroyli, tushunarli (xabar)
Vazifa 2: Xatolarni tuzating
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
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:
- Ketma-ket (miqdor)
- Kategoriya (guruh)
- Divergent (farq)
- Rang ko'r do'st
Vazifa 4: Izoh
Modellang:
- annotate (o'q)
- text (yozuv)
- axhline (chiziq)
- Kalit (kam)
Vazifa 5: Uslub
Modellang:
- plt.style
- Butun ko'rinish
- Izchillik
- Professional
Vazifa 6: Integratsiya
Modellang:
- Bezash (5.1)
- Seaborn (5.7)
- Halollik (5.13)
- 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
- Rang universal emas (rang ko'rlik)
- Yordamchi kanal (rang + shakl/yorliq)
- Rang turi (miqdor/guruh/farq — mos)
- Mas'uliyat (rang ko'r do'st, kirish)
5. Xulosa
- Rang ma'no tashiydi (idrok) lekin universal emas (rang ko'rlik)
- Yordamchi kanal (yagona emas — + shakl/yorliq)
- Rang ko'r do'st (
viridis), mos turi (miqdor/guruh) - 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:
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).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;alphaxira — chalg'itmasin). Rang xaritasi —cmap=(miqdor → rang; scatterc=+cmap, heatmap 5.8) +plt.colorbar(shkala).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).
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!