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

5.3-dars: Ustunli grafik

5-QISM — VIZUALIZATSIYA · 3-dars


1. Kirish va motivatsiya

Ustunli grafik (bar chart) — kategoriyalarni taqqoslash uchun eng yaxshi grafik. Har shahar bo'yicha savdo, har mahsulot reytingi, har oy foydasi — kategoriyalar (alohida guruhlar) va ularning qiymatlari. O'tgan darsda ko'rdik: chiziqli grafik vaqt/uzluksiz uchun, ustunli grafik esa kategoriyalar uchun (har biri alohida ustun, balandligi qiymat). Ustunli grafik oddiy va kuchli: balandlikni taqqoslash — inson ko'zi uchun oson. Nega muhim? (1) Kategoriya taqqoslash — shahar, mahsulot, guruh; (2) Reyting — eng ko'p/kam (saralangan); (3) Guruhlangan — ko'p kategoriya (2023 vs 2024 har shahar). Bu dars ustunli grafikni chuqur o'rgatadi — kategoriyalarni taqqoslash.

Ustunli grafik — kategoriyalarni taqqoslash: ax.bar (vertikal ustun — kategoriya × qiymat), ax.barh (gorizontal — uzun nom uchun), reyting (saralangan — eng ko'p/kam), guruhlangan (grouped — ko'p kategoriya yonma-yon), stacked (ustma-ust — qismlar), bezash (title/label/qiymat). Foydalanish: kategoriya taqqoslash, reyting, guruh. Bu 5.2 (chiziqli), 3.8 (groupby) bilan bog'liq. Ustunli grafik — kategoriya. Bar. Taqqoslash.

Real vaziyat. Data Scientist shahar bo'yicha savdoni ko'rsatdi: ax.bar(shaharlar, savdo) — har shahar alohida ustun (balandlik — savdo; Toshkent eng baland — eng ko'p). Reyting: saralab (nlargest — 3.10) → eng ko'p sotgan mahsulot birinchi (balandlik tartibi). Guruhlangan: 2023 vs 2024 har shahar (ax.bar(x, y2023) + ax.bar(x+width, y2024) — yonma-yon; taqqoslash). Gorizontal (barh) — uzun shahar nomlari (o'qilishli). Grafik kategoriyani taqqosladi (balandlik — qaysi katta; jadval yashiradi). Ustunli grafik — kategoriya ko'zi (taqqoslash, reyting).

Bu darsda ustunli grafikni o'rganamiz.

Bu darsda:

  • Ustunli grafik (bar)
  • Gorizontal (barh)
  • Reyting (saralangan)
  • Guruhlangan va stacked
  • Qiymatlarni ko'rsatish
  • Ustunli grafik amaliyoti
  • Ustunli grafik tuzoqlari
  • Amaliy: ustunli grafik modeli

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


2. Nazariya — chuqur tushuntirish

2.1. Ustunli grafik (bar)

Kategoriya × qiymat:

python
import matplotlib.pyplot as plt

shaharlar = ["Toshkent", "Samarqand", "Buxoro"]
savdo = [500, 300, 200]

fig, ax = plt.subplots()
ax.bar(shaharlar, savdo)     # har kategoriya alohida ustun

ax.set_title("Shahar bo'yicha savdo")
ax.set_ylabel("Savdo")

Ustunli grafik (bar) — kategoriya × qiymat: ax.bar(kategoriyalar, qiymatlar) (har kategoriya alohida ustun — balandlik qiymat). Sabab: kategoriyalarni taqqoslash (shahar, mahsulot — alohida guruhlar; qaysi katta/kichik); balandlik taqqoslash (inson ko'zi — oson). ax.bar(x, y) (x — kategoriya nomlari, y — qiymatlar). Har ustun mustaqil (kategoriya — orasida bog'lanish yo'q; 5.2 — chiziq emas). Ustunli grafik kategoriya uchun (vaqt — chiziqli). Ustunli grafik — bar (kategoriya × qiymat). Ustun. Taqqoslash.

2.2. Gorizontal (barh)

Yotiq ustunlar:

python
shaharlar = ["Toshkent", "Samarqand", "Buxoro"]
savdo = [500, 300, 200]

fig, ax = plt.subplots()
ax.barh(shaharlar, savdo)    # gorizontal (yotiq)

# barh — uzun nomlar uchun (o'qilishli)
# ko'p kategoriya uchun ham (vertikal siqiladi)

Gorizontal (barh) — yotiq ustunlar: ax.barh(kategoriyalar, qiymatlar) (ustunlar yotiq — gorizontal). Sabab: uzun nomlar (shahar nomlari, mahsulot — vertikalda o'qib bo'lmaydi, ustma-ust; gorizontal — nom chapda, o'qilishli), ko'p kategoriya (vertikal siqiladi — gorizontal joy ko'p). bar (vertikal — kam kategoriya, qisqa nom), barh (gorizontal — uzun nom, ko'p kategoriya). Reyting uchun ham (gorizontal — eng ko'p tepada yoki pastda, o'qilishli). Gorizontal — barh (yotiq; uzun nom). O'qilishli. Uzun nom.

2.3. Reyting (saralangan)

Reyting (saralangan) — tartibli ustun: ustunlarni saralab ko'rsatish (eng ko'p → eng kam yoki aksincha; sort_values/nlargest — 3.10). Sabab: reyting aniq (eng katta darrov — saralangan; tartibsiz — chalkash); saralangan ustun taqqoslash oson (balandlik tartibi — 1-o'rin, 2-o'rin). Pandas: df.sort_values("savdo").plot.bar() (saralab bar); nlargest(10) (top 10). Saralash yo'nalishi (kamayish — eng ko'p birinchi; gorizontal — eng ko'p tepada barh + sort_values). Reyting — saralangan (taqqoslash oson). Reyting — saralangan ustun (eng ko'p/kam). Tartib. Taqqoslash.

2.4. Guruhlangan va stacked

Guruhlangan va stacked — ko'p kategoriya: guruhlangan (grouped — har kategoriyada ko'p ustun yonma-yon; 2023 vs 2024 har shahar — ikki ustun; ax.bar(x - width/2, y1) + ax.bar(x + width/2, y2)), stacked (ustma-ust — qismlar bir ustunda; ax.bar(x, y1) + ax.bar(x, y2, bottom=y1); jami + qismlar). Sabab: ba'zan ikki o'lchamli taqqoslash (shahar VA yil — guruhlangan yonma-yon; yoki shahar jami + qismlar — stacked). Guruhlangan (qismlarni taqqoslash — 2023 vs 2024), stacked (jami + tarkib — shahar jami, mahsulot qismlari). Legend (qaysi ustun/qism nima). Guruhlangan/stacked — ko'p ustun (yonma-yon/ustma-ust). Ko'p o'lcham. Legend.

2.5. Qiymatlarni ko'rsatish

Qiymatlarni ko'rsatish — ustun ustida raqam: ax.bar_label(bars) (har ustun balandligi — aniq qiymat; bars = ax.bar(...)). Sabab: ustun balandlik taxminan (o'q bilan — aniq emas); qiymat yozilsa aniq (500, 300 — raqam); aniqlik (taqdimot — aniq son). ax.bar_label (avtomatik — har ustunga qiymat). Kam kategoriya (qiymat yozish — o'qilishli; ko'p — chalkash). Qiymat ko'rsatish hisobot uchun (aniq son). Qiymat ko'rsatish — bar_label (ustun ustida). Aniqlik. Hisobot.

2.6. Ustunli grafik amaliyoti

Ustunli grafik amaliyoti: ax.bar (vertikal — kkategoriya); ax.barh (gorizontal — uzun nom); reyting (saralangan — sort_values); guruhlangan (ko'p ustun — yonma-yon); stacked (ustma-ust — qismlar); bar_label (qiymat); bezash (title/label). Tuzoqlar: kcategoriyaga chiziqli (bar), o'q boshi 0 emas (aldash — 5.13; bar uchun 0 shart), juda ko'p kategoriya (chalkash — barh yoki top N), saralanmagan (reyting noaniq). Amaliyot — bar, barh, reyting, guruhlangan. Kategoriya. Taqqoslash.

2.7. Ustunli grafik tuzoqlari

Ustunli grafik asosiy tuzoqlari: o'q boshi 0 emas (bar y o'q 0 dan boshlanishi shart — bar balandlik qiymatni ko'rsatadi; 90 dan boshlansa kichik farq katta ko'rinadi — aldash, 5.13; chiziqda moslashuvchan, barda 0 shart); kategoriyaga chiziqli (kategoriya — bar; chiziq soxta oraliq — 5.2); juda ko'p kategoriya (20+ ustun — chalkash; barh (gorizontal) yoki top N (nlargest — 3.10)); saralanmagan (reyting — saralab; tartibsiz chalkash); guruhlangan legend yo'q (ko'p ustun — qaysi nima; legend); rang chalkash (guruhlangan — farqli rang); qiymat ko'p kategoriya (bar_label ko'p ustunda — chalkash; kam kategoriya); 3D bar (3D — chalg'ituvchi, o'qib bo'lmaydi; 2D afzal). Sabab: ustunli grafik o'q/kategoriya nozik (o'q boshi, ko'p kategoriya, saralash — aldash yoki chalkash). Yechim: o'q boshi 0, barh (uzun/ko'p), saralab, legend. Tuzoqlar — o'q boshi, kategoriya, ko'p kategoriya, saralash.

2.8. Ustunli grafik — kategoriyalarni taqqoslash

Ustunli grafik asosiy g'oyasi — kategoriyalarni taqqoslash: har kategoriya (shahar, mahsulot — alohida guruh) alohida ustun (balandlik — qiymat); balandlik taqqoslash (inson ko'zi — oson: qaysi katta/kichik). ax.bar (vertikal — kam kategoriya, qisqa nom), ax.barh (gorizontal — uzun nom, ko'p kategoriya), reyting (saralangan — eng ko'p/kam, 3.10), guruhlangan (ko'p ustun yonma-yon — shahar × yil), stacked (ustma-ust — jami + qismlar), bar_label (qiymat — aniq). Foydalanish: kategoriya taqqoslash (shahar savdosi), reyting (top mahsulot), guruh (ko'p o'lcham). Muhim: o'q boshi 0 (bar balandlik — 0 shart; aldamaslik 5.13); kategoriya — bar (vaqt — chiziqli 5.2). Data Science'da keng (taqqoslash, reyting, hisobot; groupby natija — 3.8, bar). Bu 5.2 (chiziqli), 3.8 (groupby) davomi va 5.13 (yolg'on grafik) bilan. Ustunli grafik — kategoriyalarni taqqoslash (bar, barh). Kategoriya. Taqqoslash.


3. Tez ma'lumotnoma

python
import matplotlib.pyplot as plt

# USTUNLI GRAFIK (kategoriya × qiymat):
fig, ax = plt.subplots()
ax.bar(shaharlar, savdo)       # vertikal
ax.barh(shaharlar, savdo)      # gorizontal (uzun nom, ko'p kategoriya)

# REYTING (saralangan — 3.10):
df.sort_values("savdo").plot.bar(x="shahar", y="savdo", ax=ax)
df.nlargest(10, "savdo")       # top 10

# GURUHLANGAN (ko'p ustun yonma-yon):
import numpy as np
x = np.arange(len(shaharlar)); width = 0.35
ax.bar(x - width/2, y2023, width, label="2023")
ax.bar(x + width/2, y2024, width, label="2024")
ax.legend()

# STACKED (ustma-ust — qismlar):
ax.bar(x, y1); ax.bar(x, y2, bottom=y1)

# QIYMAT (ustun ustida):
bars = ax.bar(shaharlar, savdo); ax.bar_label(bars)

QOIDA: o'q boshi 0 (bar shart!) · kategoriya (chiziq emas) · saralab · barh (uzun nom)

Ustunli grafik xulosasi

Ustunli grafik — kategoriyalarni taqqoslash (bar)
bar (vertikal) / barh (gorizontal — uzun nom, ko'p kategoriya)
Reyting — saralangan (eng ko'p/kam — 3.10)
Guruhlangan (yonma-yon) / stacked (ustma-ust — qismlar)
O'q boshi 0 SHART (bar balandlik — aldamaslik 5.13)

4. Batafsil misollar

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

Misol 1 — Ustunli grafik

python
"""Ustunli grafik (real matplotlib)."""

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


def main() -> None:
    shaharlar = ["Toshkent", "Samarqand", "Buxoro"]
    savdo = [500, 300, 200]

    fig, ax = plt.subplots()
    bars = ax.bar(shaharlar, savdo)

    print("=== 1. Ustunlar ===")
    print(f"  ustunlar soni: {len(bars)}")

    print("\n=== 2. Balandliklar ===")
    print(f"  savdo: {[int(b.get_height()) for b in bars]}")

    print("\n=== 3. Eng baland (Toshkent) ===")
    balandliklar = [b.get_height() for b in bars]
    print(f"  eng baland: {shaharlar[balandliklar.index(max(balandliklar))]}")

    print("\n=== 4. Bezash ===")
    ax.set_title("Shahar savdosi")
    print(f"  title: {ax.get_title()}")
    plt.close(fig)
    print("  ⭐ Ustunli grafik — kategoriya × qiymat")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Ustunlar ===
  ustunlar soni: 3

=== 2. Balandliklar ===
  savdo: [500, 300, 200]

=== 3. Eng baland (Toshkent) ===
  eng baland: Toshkent

=== 4. Bezash ===
  title: Shahar savdosi
  ⭐ Ustunli grafik — kategoriya × qiymat

Nima ko'rsatdi: 2.1-bo'lim.

Misol 2 — Gorizontal (barh)

python
"""Gorizontal ustunli grafik (real matplotlib)."""

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


def main() -> None:
    mahsulotlar = ["Noutbuk", "Telefon", "Planshet"]
    savdo = [800, 600, 400]

    fig, ax = plt.subplots()
    bars = ax.barh(mahsulotlar, savdo)

    print("=== 1. Gorizontal ustunlar ===")
    print(f"  ustunlar: {len(bars)}")

    print("\n=== 2. Kengliklar (qiymat) ===")
    print(f"  savdo: {[int(b.get_width()) for b in bars]}")

    print("\n=== 3. Uzun nomlar uchun ===")
    print(f"  nomlar: {mahsulotlar}")

    print("\n=== 4. Tushuntirish ===")
    print("  barh — gorizontal (uzun nom o'qilishli)")
    plt.close(fig)
    print("  ⭐ Gorizontal — barh (uzun nom)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Gorizontal ustunlar ===
  ustunlar: 3

=== 2. Kengliklar (qiymat) ===
  savdo: [800, 600, 400]

=== 3. Uzun nomlar uchun ===
  nomlar: ['Noutbuk', 'Telefon', 'Planshet']

=== 4. Tushuntirish ===
  barh — gorizontal (uzun nom o'qilishli)
  ⭐ Gorizontal — barh (uzun nom)

Nima ko'rsatdi: 2.2-bo'lim.

Misol 3 — Reyting (saralangan)

python
"""Reyting: saralangan bar (real pandas/matplotlib)."""

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


def main() -> None:
    df = pd.DataFrame({
        "mahsulot": ["A", "B", "C", "D"],
        "savdo": [300, 500, 200, 400],
    })

    print("=== 1. Saralash (kamayish) ===")
    saralangan = df.sort_values("savdo", ascending=False)
    print(f"  tartib: {list(saralangan['mahsulot'])}")

    print("\n=== 2. Bar (saralangan) ===")
    fig, ax = plt.subplots()
    bars = ax.bar(saralangan["mahsulot"], saralangan["savdo"])
    print(f"  balandliklar: {[int(b.get_height()) for b in bars]}")

    print("\n=== 3. Eng ko'p birinchi ===")
    print(f"  1-o'rin: {saralangan.iloc[0]['mahsulot']}")

    print("\n=== 4. Tushuntirish ===")
    print("  saralangan → reyting aniq (eng ko'p birinchi)")
    plt.close(fig)
    print("  ⭐ Reyting — saralangan (taqqoslash oson)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Saralash (kamayish) ===
  tartib: ['B', 'D', 'A', 'C']

=== 2. Bar (saralangan) ===
  balandliklar: [500, 400, 300, 200]

=== 3. Eng ko'p birinchi ===
  1-o'rin: B

=== 4. Tushuntirish ===
  saralangan → reyting aniq (eng ko'p birinchi)
  ⭐ Reyting — saralangan (taqqoslash oson)

Nima ko'rsatdi: 2.3-bo'lim.

Misol 4 — Guruhlangan bar

python
"""Guruhlangan bar (real numpy/matplotlib)."""

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


def main() -> None:
    shaharlar = ["Toshkent", "Samarqand"]
    y2023 = [400, 300]
    y2024 = [500, 350]

    x = np.arange(len(shaharlar))
    width = 0.35

    fig, ax = plt.subplots()
    b1 = ax.bar(x - width/2, y2023, width, label="2023")
    b2 = ax.bar(x + width/2, y2024, width, label="2024")
    ax.legend()

    print("=== 1. Ikki guruh ===")
    print(f"  ustunlar guruhi: {len(ax.containers)}")

    print("\n=== 2. 2023 balandliklari ===")
    print(f"  2023: {[int(b.get_height()) for b in b1]}")

    print("\n=== 3. 2024 (yuqori) ===")
    print(f"  2024: {[int(b.get_height()) for b in b2]}")

    print("\n=== 4. Legend ===")
    yorliqlar = [t.get_text() for t in ax.get_legend().get_texts()]
    print(f"  yorliqlar: {yorliqlar}")
    plt.close(fig)
    print("  ⭐ Guruhlangan — ko'p ustun yonma-yon (taqqoslash)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Ikki guruh ===
  ustunlar guruhi: 2

=== 2. 2023 balandliklari ===
  2023: [400, 300]

=== 3. 2024 (yuqori) ===
  2024: [500, 350]

=== 4. Legend ===
  yorliqlar: ['2023', '2024']
  ⭐ Guruhlangan — ko'p ustun yonma-yon (taqqoslash)

Nima ko'rsatdi: 2.4-bo'lim.


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

Noto'g'ri fikr To'g'risi
"bar har xil ma'lumot" Kategoriya (vaqt — chiziqli)
"o'q boshi ixtiyoriy" 0 SHART (bar balandlik)
"saralash keraksiz" Reyting (saralangan)
"uzun nom vertikal" barh (gorizontal)
"ko'p kategoriya OK" 20+ chalkash (barh/top N)
"guruhlangan legendsiz" Legend (qaysi nima)
"3D bar chiroyli" 2D (3D o'qib bo'lmaydi)
"kategoriya — chiziqli" Bar (kategoriya)

6. Keng tarqalgan xatolar va yechimlari

1. O'q boshi 0 emas

python
ax.set_ylim(90, 110)   # bar — kichik farq katta (aldash)     # ⚠️
ax.set_ylim(0, 110)   # 0 dan (bar SHART — 5.13)               # ✅

2. Kategoriyaga chiziqli

python
ax.plot(shaharlar, savdo)   # kategoriya (soxta oralik)       # ⚠️
ax.bar(shaharlar, savdo)   # bar                               # ✅

3. Saralanmagan

python
ax.bar(df["mahsulot"], df["savdo"])   # tartibsiz             # ⚠️
ax.bar(df.sort_values("savdo")...)   # reyting                 # ✅

4. Uzun nom vertikal

python
ax.bar(uzun_nomlar, y)   # nomlar ustma-ust (o'qib bo'lmaydi) # ⚠️
ax.barh(uzun_nomlar, y)   # gorizontal                         # ✅

5. Ko'p kategoriya

python
ax.bar(50_kategoriya, y)   # chalkash                         # ⚠️
df.nlargest(10, "savdo")   # top 10                            # ✅

6. Guruhlangan legendsiz

python
ax.bar(...); ax.bar(...)   # qaysi guruh nima                 # ⚠️
ax.bar(..., label="2023"); ax.legend()                        # ✅

7. 3D bar

python
# 3D bar (o'qib bo'lmaydi, chalg'ituvchi)                     # ⚠️
# 2D bar (aniq)                                                # ✅

7. Integratsiya — bu bilim qayerda kerak bo'ladi

  • 5.2-dars (o'tilgan): Chiziqli grafik (vaqt)
  • 3.8-dars (o'tilgan): groupby (natija — bar)
  • 3.10-dars (o'tilgan): Saralash (reyting)
  • 5.13-dars: Yolg'on grafiklar (o'q boshi)
  • 9-qism (reja): EDA (kategoriya taqqoslash)

8. Eng yaxshi amaliyotlar

  1. ax.bar — kategoriya (vaqt — chiziqli).

  2. O'q boshi 0 SHART (bar balandlik).

  3. Saralangan — reyting (eng ko'p/kam).

  4. barh — uzun nom, ko'p kategoriya.

  5. Top N — ko'p kategoriya (nlargest).

  6. Guruhlangan — legend (qaysi nima).

  7. bar_label — qiymat (aniq).

  8. Ustunli grafik — kategoriyalarni taqqoslash.


9. Amaliy topshiriq

Vazifa 1: Bashorat qiling

python
1.  # ustunli grafik nima?
2.  # bar nima qiladi?
3.  # qachon bar?
4.  # barh nima?
5.  # barh qachon?
6.  # reyting nima?
7.  # guruhlangan nima?
8.  # stacked nima?
9.  # o'q boshi 0?
10. # ko'p kategoriya?
11. # bar_label nima?
12. # nega bar muhim?
Javoblar
  1. Kategoriyalarni taqqoslash
  2. Kategoriya × qiymat (ustun)
  3. Kategoriya (vaqt — chiziqli)
  4. Gorizontal (yotiq)
  5. Uzun nom, ko'p kategoriya
  6. Saralangan (eng ko'p/kam)
  7. Ko'p ustun yonma-yon
  8. Ustma-ust (qismlar)
  9. SHART (bar balandlik — aldamaslik)
  10. barh yoki top N
  11. Qiymat (ustun ustida)
  12. Kategoriya taqqoslash (balandlik)

Vazifa 2: Xatolarni tuzating

python
1.  ax.set_ylim(90, 110)   # bar aldash

2.  ax.plot(shaharlar, savdo)   # kategoriya

3.  ax.bar(df["m"], df["s"])   # tartibsiz

4.  ax.bar(uzun_nomlar, y)   # o'qib bo'lmaydi

5.  ax.bar(50_kat, y)   # chalkash
Javoblar
python
1.  ax.set_ylim(0, 110)

2.  ax.bar(shaharlar, savdo)

3.  df.sort_values("s") (reyting)

4.  ax.barh (gorizontal)

5.  df.nlargest(10) (top N)

Vazifa 3: Bar

Modellang:

  1. Kategoriya
  2. Ustun
  3. Balandlik
  4. Taqqoslash

Vazifa 4: barh

Modellang:

  1. Gorizontal
  2. Uzun nom
  3. Ko'p kategoriya
  4. O'qilishli

Vazifa 5: Reyting

Modellang:

  1. Saralangan
  2. Eng ko'p
  3. Top N
  4. Tartib

Vazifa 6: Guruhlangan

Modellang:

  1. Ko'p ustun
  2. Yonma-yon
  3. Legend
  4. Stacked

Vazifa 7: O'ylash

Ustunli grafikda y o'q 0 dan boshlanishi SHART (chiziqli grafikda esa moslashuvchan bo'lishi mumkin). Nima uchun bar chart 0 dan boshlanishi kerak (nega 0 dan boshlamaslik aldash), va nega bu chiziqli grafikda unchalik muhim emas?

Javoblar

Qisqa javob: Bar chart y o'q 0 dan shart, 0 dan boshlamaslik aldash, chiziqlida uncha muhim emas, chunki: (1) bar balandlik = qiymat — bar balandligi qiymatni ko'rsatadi (ustun balandligi — miqdor; ko'z balandlikni taqqoslaydi); balandlik qiymatga mutanosib bo'lishi kerak (100 ustun 50 ustundan 2 baravar baland — 0 dan; aks holda noto'g'ri); (2) 0 dan boshlamaslik buzadi — y o'q 90 dan boshlansa (90-110), 100 va 105 ustunlari 10 va 15 balandlik (1.5 baravar farq ko'rinadi — aslida 5% farq!); kichik farq katta ko'rinadi (aldash — 5% ni 50% qilib ko'rsatadi); (3) vizual yolg'on — bar 0 dan boshlamasa balandlik nisbati buziladi (ko'z balandlikni taqqoslaydi — noto'g'ri nisbat = noto'g'ri xulosa; mashhur aldash usuli — 5.13). "Nega chiziqlida uncha muhim emas": (a) chiziq — o'zgarish — chiziqli grafik o'zgarish/trendni ko'rsatadi (nuqtalar orasi nishab — o'zgarish; balandlik emas); chiziq holati emas, yo'nalishi muhim; (b) kichik farq ko'rish — chiziqda o'q boshi 0 emas bo'lsa kichik o'zgarishni ko'rish foydali (harorat 20-25° — 0 dan boshlansa tekis chiziq, farq ko'rinmaydi; 20 dan — o'zgarish aniq); (c) balandlik taqqoslash yo'q — chiziqda ustun balandlik taqqoslash yo'q (nuqtalar — o'zgarish; nisbat muhim emas). "Lekin ehtiyot": chiziqda ham manipulyatsiya mumkin (o'q boshi tanlab — kichik o'zgarishni katta; kontekstga — halol bo'lish). Saboqlar: bar balandlik = qiymat (0 dan — mutanosib); 0 dan boshlamaslik aldash (kichik farq katta); chiziq o'zgarish (balandlik emas — 0 uncha muhim emas); kontekst (halol — 5.13). To'g'ri: bar 0 dan (shart); chiziq — kontekstga (kichik o'zgarish ko'rish mumkin, lekin halol). Muvozanat: bar (balandlik — 0 shart) vs chiziq (o'zgarish — moslashuvchan); grafik turi o'q qoidasini belgilaydi. Bu vizualizatsiya etikasi (aldamaslik — 5.13; bar 0 dan; halol grafik). Bar — kategoriya taqqoslash (balandlik — 0 dan shart).

1. Nega bar 0 dan shart

  • Bar balandlik = qiymat (ko'z balandlik taqqoslaydi)
  • Balandlik qiymatga mutanosib (100 = 2× 50 — 0 dan)
  • 0 dan boshlamaslik balandlik nisbatini buzadi

2. Nega 0 dan boshlamaslik aldash

  • 90 dan boshlansa — 5% farq 50% ko'rinadi
  • Kichik farq katta (vizual yolg'on)
  • Mashhur aldash usuli (5.13)

3. Nega chiziqda uncha muhim emas

  • Chiziq o'zgarish/trend (balandlik emas)
  • Yo'nalish muhim (holat emas)
  • Kichik o'zgarish ko'rish (0 emas — foydali)

4. Bar vs chiziq (o'q boshi)

Bar Chiziq
Balandlik = qiymat O'zgarish/trend
0 dan SHART Moslashuvchan
Aldash (0 emas) Kichik farq ko'rish

5. Saboqlar

  1. Bar balandlik = qiymat (0 dan — mutanosib)
  2. 0 dan boshlamaslik aldash (kichik katta)
  3. Chiziq o'zgarish (0 uncha muhim emas)
  4. Kontekst (halol — 5.13)

6. Xulosa

  1. Bar 0 dan shart (balandlik = qiymat)
  2. 0 dan boshlamaslik aldash (nisbat buziladi)
  3. Chiziq o'zgarish (0 uncha muhim emas)
  4. Grafik turi o'q qoidasini belgilaydi

Nimani mustahkamlaydi: 2.1, 2.7-bo'limlar.


Xulosa

Bu darsda ustunli grafikni o'rgandik.

Eng muhim uch fikr:

  1. Bar va barh. Ustunli grafik (ax.bar(kategoriyalar, qiymatlar)) — har kategoriya alohida ustun (balandlik — qiymat; kategoriyalarni taqqoslash — balandlik, ko'z uchun oson). Gorizontal (ax.barh) — yotiq ustunlar (uzun nomlar — o'qilishli; ko'p kategoriya — vertikal siqiladi).

  2. Reyting va guruhlangan. Reyting — saralangan ustun (sort_values/nlargest — eng ko'p/kam; taqqoslash oson — 3.10). Guruhlangan (grouped — ko'p ustun yonma-yon; shahar × yil — 2023/2024; legend), stacked (ustma-ust — jami + qismlar). bar_label (ustun ustida qiymat — aniq).

  3. Kategoriya taqqoslash. Ustunli grafik — kategoriyalarni taqqoslash (balandlik — qaysi katta; kategoriya — bar, vaqt — chiziqli 5.2). Muhim: o'q boshi 0 SHART (bar balandlik = qiymat; 0 dan boshlamaslik kichik farqni katta ko'rsatadi — aldash 5.13; chiziqda moslashuvchan — o'zgarish). Data Science'da keng (taqqoslash, reyting, hisobot; groupby natija — 3.8). Tuzoqlar: o'q boshi 0 emas (aldash), kategoriyaga chiziqli, ko'p kategoriya (barh/top N), saralanmagan, guruhlangan legendsiz.

Keyingi darsda nuqtali grafik (scatter plot)ni o'rganamiz: ikki o'zgaruvchan orasidagi aloqa — korrelyatsiya, guruh, outlier (4.9 korrelyatsiya grafigi).

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
5.3-dars: Ustunli grafik — IlmHamroh