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

5.2-dars: Chiziqli grafik

5-QISM — VIZUALIZATSIYA · 2-dars


1. Kirish va motivatsiya

Eng ko'p ishlatiladigan grafik turlaridan biri — chiziqli grafik (line plot). U vaqt bo'yicha o'zgarishni ko'rsatishda tengsiz: kunlik savdo, oylik daromad, yillik o'sish, harorat trendi. Chiziqli grafik nuqtalarni chiziq bilan bog'laydi — shu bilan trend (o'sish/pasayish), mavsumiylik (takrorlanuvchi naqsh) va o'zgarish tezligi ko'rinadi. Ko'p chiziq bir grafikda bo'lsa — taqqoslash (2023 vs 2024 savdo). Nega muhim? (1) Vaqt qatori — trend, o'zgarish (savdo, moliya, sensor); (2) Taqqoslash — ko'p chiziq (guruhlar); (3) Naqsh — mavsumiylik, cho'qqi. Bu dars chiziqli grafikni chuqur o'rgatadi — vaqt bo'yicha o'zgarishni ko'rish.

Chiziqli grafik — vaqt bo'yicha o'zgarish: ax.plot (nuqtalarni chiziq bilan), vaqt qatori (x — vaqt, y — qiymat; trend), ko'p chiziq (taqqoslash — bir grafikda), uslub (rang, chiziq turi, marker — color/linestyle/marker), legend (ko'p chiziq — izoh), bezash (title/label). Foydalanish: trend, taqqoslash, mavsumiylik. Bu 3.12 (vaqt qatori), 5.1 (Matplotlib) bilan bog'liq. Chiziqli grafik — vaqt/o'zgarish. Trend. Ko'p chiziq.

Real vaziyat. Data Scientist 12 oylik savdoni chiziqli grafikda ko'rsatdi: ax.plot(oylar, savdo) — trend darrov (yozda o'sish, qishda pasayish — mavsumiylik). Taqqoslash: 2023 va 2024 — ax.plot(oy, savdo_2023, label="2023") + ax.plot(oy, savdo_2024, label="2024") (ikki chiziq — 2024 yuqori, o'sish); legend (qaysi chiziq qaysi yil). Uslub: color="red", linestyle="--" (uzuq), marker="o" (nuqtalar). Grafik o'zgarishni ko'rsatdi (trend, mavsumiylik, taqqoslash — jadval yashiradi). Chiziqli grafik — vaqt qatori ko'zi (trend, taqqoslash).

Bu darsda chiziqli grafikni o'rganamiz.

Bu darsda:

  • Chiziqli grafik (plot)
  • Ko'p chiziq (taqqoslash)
  • Uslub (rang, chiziq, marker)
  • Vaqt qatori grafigi
  • Legend va bezash
  • Chiziqli grafik amaliyoti
  • Chiziqli grafik tuzoqlari
  • Amaliy: chiziqli grafik modeli

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


2. Nazariya — chuqur tushuntirish

2.1. Chiziqli grafik (plot)

Nuqtalarni chiziq bilan:

python
import matplotlib.pyplot as plt

oylar = [1, 2, 3, 4, 5, 6]
savdo = [100, 120, 140, 130, 160, 180]

fig, ax = plt.subplots()
ax.plot(oylar, savdo)     # nuqtalarni chiziq bilan bog'laydi

ax.set_title("Oylik savdo")
ax.set_xlabel("Oy")
ax.set_ylabel("Savdo")

Chiziqli grafik (plot) — nuqtalarni chiziq bilan: ax.plot(x, y) (x va y nuqtalarini chiziq bilan bog'laydi). Sabab: vaqt bo'yicha o'zgarish (kunlik/oylik savdo — x vaqt, y qiymat; nuqtalar orasi chiziq — uzluksiz o'zgarish); chiziq trendni ko'rsatadi (o'sish/pasayish — chiziq yo'nalishi). ax.plot(x, y) (chiziq — vaqt qatori, o'zgarish). x (vaqt — oy, sana), y (qiymat — savdo). Chiziqli grafik eng ko'p (vaqt/o'zgarish). Chiziqli grafik — plot (nuqta chiziq). Vaqt. Trend.

2.2. Ko'p chiziq (taqqoslash)

Bir grafikda ko'p chiziq:

python
oy = [1, 2, 3, 4]

fig, ax = plt.subplots()
ax.plot(oy, [100, 120, 140, 130], label="2023")
ax.plot(oy, [110, 135, 150, 165], label="2024")

ax.legend()   # qaysi chiziq qaysi yil

# ko'p chiziq — TAQQOSLASH (2023 vs 2024)

Ko'p chiziq (taqqoslash) — bir grafikda: ax.plot(...) bir necha marta (har biri chiziq; label= bilan), ax.legend() (izoh — qaysi chiziq nima). Sabab: ko'pincha taqqoslash kerak (2023 vs 2024 savdo; ikki shahar harorat; guruhlar); bir grafikda ko'p chiziq (yonma-yon — farq ko'rinadi). Legend muhim (ko'p chiziq — qaysi qaysi; label + legend). Har chiziq avtomatik rang (yoki color=). Ko'p chiziq taqqoslash (trend farqi — 2024 yuqori). Ko'p chiziq — bir grafikda (taqqoslash, legend). Taqqoslash. Legend.

2.3. Uslub (rang, chiziq, marker)

Grafikni farqlash:

python
fig, ax = plt.subplots()

# color — rang, linestyle — chiziq turi, marker — nuqta
ax.plot(x, y1, color="blue", linestyle="-", marker="o")   # to'liq
ax.plot(x, y2, color="red", linestyle="--", marker="s")   # uzuq

# linestyle: "-" to'liq, "--" uzuq, ":" nuqtali, "-." nuqta-chiziq
# marker: "o" doira, "s" kvadrat, "^" uchburchak

Uslub (rang, chiziq, marker) — grafikni farqlash: color (rang — "blue", "red", "#FF0000"), linestyle (chiziq turi — "-" to'liq, "--" uzuq, ":" nuqtali), marker (nuqta — "o" doira, "s" kvadrat, "^" uchburchak). Sabab: ko'p chiziqni farqlash (rang — ko'z bilan; chiziq turi — rangsiz bosma uchun; marker — nuqtalar); uslub o'qilishni yaxshilaydi (turli chiziq — chalkashmaslik). Rang (asosiy — ajratish), linestyle (qo'shimcha — rangsiz), marker (nuqtalar — aniq qiymat). Uslub — color/linestyle/marker (farqlash). Rang. Chiziq turi.

2.4. Vaqt qatori grafigi

Vaqt qatori grafigi — sana bo'yicha: chiziqli grafik vaqt qatori uchun ideal (x — sana/vaqt, y — qiymat; 3.12); Pandas bilan oson (df.plot() — indeks sana bo'lsa avtomatik x). Sabab: vaqt qatori (savdo, harorat, aksiya — vaqt bo'yicha) chiziqli grafik (uzluksiz o'zgarish — trend, mavsumiylik); sana o'q (Matplotlib sanani formatlaydi — 3.12 datetime). Pandas: df.set_index("sana")["savdo"].plot() (indeks x, qiymat y — tez); resample (oylik trend — 3.12). Vaqt qatori trend (o'sish), mavsumiylik (takror), anomaliya (keskin o'zgarish). Vaqt qatori grafigi — sana x (chiziqli). Trend. Pandas.

2.5. Legend va bezash

Legend va bezash — tushunarli grafik: legend (ax.plot(..., label="A") + ax.legend() — ko'p chiziq izohi; joylashuv loc="best"), bezash (title/xlabel/ylabel — 5.1; grid — to'r). Sabab: chiziqli grafik ko'p chiziq bo'lsa legend shart (qaysi chiziq nima — 2023/2024); bezash (sarlavha — mavzu; o'q nomi — vaqt/qiymat). Legend joylashuvi (loc — "upper left", "best" — avtomatik; chiziqni to'smasin). Yaxshi grafik (title + label + legend — o'z-o'zini tushuntiradi). Legend/bezash — legend (ko'p chiziq), title/label. Tushunarli. Izoh.

2.6. Chiziqli grafik amaliyoti

Chiziqli grafik amaliyoti: ax.plot(x, y) (chiziq); ko'p chiziq (taqqoslash — label + legend); uslub (color/linestyle/marker); vaqt qatori (sana x — 3.12); bezash (title/label — 5.1); Pandas (df.plot() — tez); anomaliya (keskin o'zgarish — grafik). Tuzoqlar: legend yo'q (ko'p chiziq — qaysi qaysi), juda ko'p chiziq (chalkash — 5-7 dan kam), rang chalkash (yaqin rang), o'q boshi 0 emas (aldash — 5.13). Amaliyot — plot, ko'p chiziq, uslub, vaqt qatori. Trend. Taqqoslash.

2.7. Chiziqli grafik tuzoqlari

Chiziqli grafik asosiy tuzoqlari: legend yo'q (ko'p chiziq — qaysi qaysi noaniq; label + legend); juda ko'p chiziq (10+ chiziq — chalkash (spagetti grafik); 5-7 dan kam, yoki alohida subplots — 5.10); noto'g'ri grafik turi (chiziqli vaqt/uzluksiz uchun; kategoriya (shahar savdosi) uchun bar — chiziq kategoriyani bog'lash noto'g'ri, uzluksizlik yo'q); o'q boshi 0 emas (y o'q 90 dan boshlansa — kichik farq katta ko'rinadi; aldash — 5.13; kontekstga); rang chalkash (yaqin rang — ajratib bo'lmaydi; farqli rang/linestyle); ko'p marker (har nuqta marker — ko'p nuqtada chalkash; kam nuqtada mayli); sana tartibi (vaqt qatori — sana tartibli bo'lishi kerak; sort_index — 3.12); NaN (chiziq uziladi — NaN'da; to'ldirish yoki tashlash). Sabab: chiziqli grafik legend/tur/o'q nozik (ko'p chiziq, kategoriya, o'q boshi — chalkash yoki aldash). Yechim: legend, kam chiziq, vaqt uchun, o'q boshi 0. Tuzoqlar — legend, ko'p chiziq, tur, o'q boshi.

2.8. Chiziqli grafik — vaqt bo'yicha o'zgarish

Chiziqli grafik asosiy g'oyasi — vaqt bo'yicha o'zgarish: nuqtalarni chiziq bilan bog'lab (ax.plot) uzluksiz o'zgarishni ko'rsatadi (vaqt qatori — savdo, harorat; trend, mavsumiylik); eng ko'p ishlatiladigan grafik (vaqt/o'zgarish uchun). Ko'p chiziq (taqqoslash — 2023 vs 2024; legend), uslub (color/linestyle/marker — farqlash), vaqt qatori (sana x — 3.12; Pandas df.plot), bezash (title/label/legend). Foydalanish: trend (o'sish/pasayish), taqqoslash (guruhlar), mavsumiylik (takror), anomaliya (keskin o'zgarish). Data Science'da keng (moliya, savdo, sensor — vaqt qatori; EDA — 9-qism). Ehtiyot: legend (ko'p chiziq), kcategoriyaga bar (chiziq emas), o'q boshi 0 (aldamaslik — 5.13). Bu 3.12 (vaqt qatori), 5.1 (Matplotlib) davomi va 5.13 (yolg'on grafik) bilan. Chiziqli grafik — vaqt bo'yicha o'zgarish (plot, ko'p chiziq). Trend. Taqqoslash.


3. Tez ma'lumotnoma

python
import matplotlib.pyplot as plt

# CHIZIQLI GRAFIK (vaqt/o'zgarish):
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(oylar, savdo)

# KO'P CHIZIQ (taqqoslash):
ax.plot(oy, savdo_2023, label="2023")
ax.plot(oy, savdo_2024, label="2024")
ax.legend()

# USLUB:
ax.plot(x, y, color="blue", linestyle="--", marker="o")
#   linestyle: "-" "--" ":" "-."  ·  marker: "o" "s" "^"

# VAQT QATORI (Pandas — tez):
df.set_index("sana")["savdo"].plot(ax=ax)

# BEZASH:
ax.set_title("Savdo"); ax.set_xlabel("Oy"); ax.set_ylabel("Summa")

QOIDA: legend (ko'p chiziq) · vaqt uchun (kategoriya — bar) · o'q boshi 0 · kam chiziq

Chiziqli grafik xulosasi

Chiziqli grafik — vaqt bo'yicha o'zgarish (plot)
Nuqtalarni chiziq bilan (trend, mavsumiylik)
Ko'p chiziq — taqqoslash (label + legend)
Uslub — color/linestyle/marker (farqlash)
Vaqt qatori — sana x (3.12; Pandas df.plot)

4. Batafsil misollar

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

Misol 1 — Chiziqli grafik

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

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


def main() -> None:
    oylar = [1, 2, 3, 4, 5, 6]
    savdo = [100, 120, 140, 130, 160, 180]

    fig, ax = plt.subplots()
    ax.plot(oylar, savdo)

    print("=== 1. Chiziq ===")
    print(f"  chiziqlar soni: {len(ax.lines)}")

    print("\n=== 2. Ma'lumot ===")
    print(f"  savdo: {[int(v) for v in ax.lines[0].get_ydata()]}")

    print("\n=== 3. Trend (o'suvchi) ===")
    ydata = ax.lines[0].get_ydata()
    print(f"  boshi: {int(ydata[0])}, oxiri: {int(ydata[-1])} (o'sish)")

    print("\n=== 4. Nuqtalar ===")
    print(f"  oylar: {[int(v) for v in ax.lines[0].get_xdata()]}")
    plt.close(fig)
    print("  ⭐ Chiziqli grafik — nuqtalarni chiziq bilan")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Chiziq ===
  chiziqlar soni: 1

=== 2. Ma'lumot ===
  savdo: [100, 120, 140, 130, 160, 180]

=== 3. Trend (o'suvchi) ===
  boshi: 100, oxiri: 180 (o'sish)

=== 4. Nuqtalar ===
  oylar: [1, 2, 3, 4, 5, 6]
  ⭐ Chiziqli grafik — nuqtalarni chiziq bilan

Nima ko'rsatdi: 2.1-bo'lim.

Misol 2 — Ko'p chiziq

python
"""Ko'p chiziq: taqqoslash (real matplotlib)."""

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


def main() -> None:
    oy = [1, 2, 3, 4]

    fig, ax = plt.subplots()
    ax.plot(oy, [100, 120, 140, 130], label="2023")
    ax.plot(oy, [110, 135, 150, 165], label="2024")
    ax.legend()

    print("=== 1. Ikki chiziq ===")
    print(f"  chiziqlar: {len(ax.lines)}")

    print("\n=== 2. Legend ===")
    yorliqlar = [t.get_text() for t in ax.get_legend().get_texts()]
    print(f"  yorliqlar: {yorliqlar}")

    print("\n=== 3. Taqqoslash (2024 yuqori) ===")
    y2023 = ax.lines[0].get_ydata()
    y2024 = ax.lines[1].get_ydata()
    print(f"  2024 oxiri > 2023 oxiri: {y2024[-1] > y2023[-1]}")

    print("\n=== 4. Tushuntirish ===")
    print("  ko'p chiziq — taqqoslash (legend bilan)")
    plt.close(fig)
    print("  ⭐ Ko'p chiziq — taqqoslash")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Ikki chiziq ===
  chiziqlar: 2

=== 2. Legend ===
  yorliqlar: ['2023', '2024']

=== 3. Taqqoslash (2024 yuqori) ===
  2024 oxiri > 2023 oxiri: True

=== 4. Tushuntirish ===
  ko'p chiziq — taqqoslash (legend bilan)
  ⭐ Ko'p chiziq — taqqoslash

Nima ko'rsatdi: 2.2-bo'lim.

Misol 3 — Uslub

python
"""Uslub: rang, chiziq, marker (real matplotlib)."""

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


def main() -> None:
    x = [1, 2, 3, 4]

    fig, ax = plt.subplots()
    ax.plot(x, [10, 20, 30, 40], color="blue", linestyle="-", marker="o")
    ax.plot(x, [15, 25, 20, 35], color="red", linestyle="--", marker="s")

    print("=== 1. Birinchi chiziq rangi ===")
    print(f"  color: {ax.lines[0].get_color()}")

    print("\n=== 2. Chiziq turi ===")
    print(f"  linestyle 1: {ax.lines[0].get_linestyle()}")
    print(f"  linestyle 2: {ax.lines[1].get_linestyle()}")

    print("\n=== 3. Marker ===")
    print(f"  marker 1: {ax.lines[0].get_marker()}")

    print("\n=== 4. Tushuntirish ===")
    print("  color (rang), linestyle (chiziq), marker (nuqta)")
    plt.close(fig)
    print("  ⭐ Uslub — farqlash (rang/chiziq/marker)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Birinchi chiziq rangi ===
  color: blue

=== 2. Chiziq turi ===
  linestyle 1: -
  linestyle 2: --

=== 3. Marker ===
  marker 1: o

=== 4. Tushuntirish ===
  color (rang), linestyle (chiziq), marker (nuqta)
  ⭐ Uslub — farqlash (rang/chiziq/marker)

Nima ko'rsatdi: 2.3-bo'lim.

Misol 4 — Pandas bilan vaqt qatori

python
"""Pandas bilan vaqt qatori grafigi (real pandas/matplotlib)."""

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


def main() -> None:
    df = pd.DataFrame({
        "sana": pd.to_datetime(["2024-01-01", "2024-02-01", "2024-03-01", "2024-04-01"]),
        "savdo": [100, 120, 140, 130],
    }).set_index("sana")

    print("=== 1. Pandas plot ===")
    fig, ax = plt.subplots()
    df["savdo"].plot(ax=ax)
    print(f"  chiziqlar: {len(ax.lines)}")

    print("\n=== 2. Ma'lumot ===")
    print(f"  savdo: {[int(v) for v in ax.lines[0].get_ydata()]}")

    print("\n=== 3. Bezash ===")
    ax.set_title("Oylik savdo")
    ax.set_ylabel("Summa")
    print(f"  title: {ax.get_title()}")

    print("\n=== 4. Tushuntirish ===")
    print("  df.plot — Pandas + Matplotlib (tez, sana x)")
    plt.close(fig)
    print("  ⭐ Vaqt qatori — Pandas df.plot")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Pandas plot ===
  chiziqlar: 1

=== 2. Ma'lumot ===
  savdo: [100, 120, 140, 130]

=== 3. Bezash ===
  title: Oylik savdo

=== 4. Tushuntirish ===
  df.plot — Pandas + Matplotlib (tez, sana x)
  ⭐ Vaqt qatori — Pandas df.plot

Nima ko'rsatdi: 2.4-bo'lim.


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

Noto'g'ri fikr To'g'risi
"chiziqli har xil ma'lumot" Vaqt/uzluksiz (kategoriya — bar)
"legend keraksiz" Ko'p chiziq — shart
"ko'p chiziq yaxshi" 5-7 dan kam (chalkash)
"o'q boshi ixtiyoriy" 0 (aldamaslik — 5.13)
"rang muhim emas" Farqli rang (ajratish)
"marker doim" Kam nuqtada (ko'p — chalkash)
"sana tartibsiz OK" Tartibli (vaqt qatori)
"df.plot yo'q" Pandas — tez

6. Keng tarqalgan xatolar va yechimlari

1. Legend yo'q

python
ax.plot(x, y1); ax.plot(x, y2)   # qaysi qaysi?               # ⚠️
ax.plot(x, y1, label="A"); ax.legend()   # izoh               # ✅

2. Ko'p chiziq

python
# 15 chiziq (spagetti — chalkash)                             # ⚠️
# 5-7 dan kam (yoki subplots — 5.10)                          # ✅

3. Kategoriyaga chiziqli

python
ax.plot(shaharlar, savdo)   # kategoriya (uzluksiz emas)      # ⚠️
ax.bar(shaharlar, savdo)   # bar (kategoriya — 5.3)            # ✅

4. O'q boshi 0 emas

python
ax.set_ylim(90, 110)   # kichik farq katta ko'rinadi (aldash) # ⚠️
ax.set_ylim(0, 110)   # 0 dan (halol — 5.13)                   # ✅

5. Rang chalkash

python
ax.plot(x, y1, color="blue"); ax.plot(x, y2, color="navy")   # yaqin # ⚠️
# farqli rang (blue, red)                                     # ✅

6. Sana tartibsiz

python
df.plot()   # sana tartibsiz (chiziq chalkash)                # ⚠️
df.sort_index().plot()   # tartibli 3.12-bob                     # ✅

7. NaN uzilishi

python
ax.plot(x, y_nan)   # NaN da chiziq uziladi                   # ⚠️
# NaN to'ldirish yoki tashlash 3.7-bob                           # ✅

7. Integratsiya — bu bilim qayerda kerak bo'ladi

  • 5.1-dars (o'tilgan): Matplotlib
  • 3.12-dars (o'tilgan): Vaqt qatori (datetime)
  • 5.3-dars: Ustunli grafik (kategoriya)
  • 5.13-dars: Yolg'on grafiklar (o'q boshi)
  • 9-qism (reja): EDA (trend)

8. Eng yaxshi amaliyotlar

  1. ax.plot(x, y) — vaqt/o'zgarish.

  2. Ko'p chiziq — legend (label bilan).

  3. Uslub — color/linestyle/marker (farqlash).

  4. Vaqt qatori — sana x (Pandas df.plot).

  5. Kam chiziq (5-7 — chalkash emas).

  6. Kategoriya — bar (chiziq emas).

  7. O'q boshi 0 (aldamaslik — 5.13).

  8. Chiziqli grafik — vaqt bo'yicha o'zgarish.


9. Amaliy topshiriq

Vazifa 1: Bashorat qiling

python
1.  # chiziqli grafik nima?
2.  # plot nima qiladi?
3.  # qachon chiziqli?
4.  # ko'p chiziq nima uchun?
5.  # legend nima uchun?
6.  # color nima?
7.  # linestyle nima?
8.  # marker nima?
9.  # vaqt qatori grafigi?
10. # kategoriyaga chiziqli?
11. # o'q boshi 0?
12. # nega chiziqli muhim?
Javoblar
  1. Nuqtalarni chiziq bilan (vaqt/o'zgarish)
  2. Nuqtalarni chiziq bilan bog'laydi
  3. Vaqt/uzluksiz
  4. Taqqoslash
  5. Qaysi chiziq nima (ko'p chiziq)
  6. Rang
  7. Chiziq turi (--, :)
  8. Nuqta belgisi (o, s)
  9. Sana x (Pandas df.plot)
  10. Yo'q (bar)
  11. Ha (aldamaslik)
  12. Vaqt bo'yicha o'zgarish (trend)

Vazifa 2: Xatolarni tuzating

python
1.  ax.plot(x, y1); ax.plot(x, y2)   # qaysi qaysi

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

3.  ax.set_ylim(90, 110)   # aldash

4.  # 15 chiziq

5.  df.plot()   # sana tartibsiz
Javoblar
python
1.  label="A" + ax.legend()

2.  ax.bar (kategoriya)

3.  ax.set_ylim(0, 110)

4.  5-7 chiziq (subplots)

5.  df.sort_index().plot()

Vazifa 3: Chiziqli grafik

Modellang:

  1. plot
  2. Nuqta chiziq
  3. Vaqt
  4. Trend

Vazifa 4: Ko'p chiziq

Modellang:

  1. Ko'p plot
  2. label
  3. legend
  4. Taqqoslash

Vazifa 5: Uslub

Modellang:

  1. color
  2. linestyle
  3. marker
  4. Farqlash

Vazifa 6: Vaqt qatori

Modellang:

  1. Sana x
  2. df.plot
  3. Trend
  4. Mavsumiylik

Vazifa 7: O'ylash

Chiziqli grafik nuqtalarni chiziq bilan bog'laydi — bu vaqt qatori (uzluksiz o'zgarish) uchun ideal, lekin kategoriyalar (shaharlar) uchun noto'g'ri. Nima uchun chiziq "uzluksizlik"ni anglatadi, va nega kategoriyalarni chiziq bilan bog'lash chalg'ituvchi (nega bar chart to'g'ri)?

Javob

Qisqa javob: Chiziq uzluksizlikni anglatadi, kategoriyani chiziq bilan bog'lash chalg'ituvchi, bar to'g'ri, chunki: (1) chiziq — oraliq ma'no — chiziq ikki nuqta orasini bog'laydi (oraliqda qiymat bor deb; yanvar-fevral orasida — 15-yanvar qiymat mantiqiy); uzluksiz (vaqt — har lahzada qiymat bor); chiziq oraliqni ko'rsatadi (o'zgarish — trend); (2) kategoriya — oraliq yo'q — shaharlar (Toshkent, Samarqand) alohida (orasida qiymat yo'q — "Toshkent-Samarqand orasi" ma'nosiz); chiziq soxta oraliq (shaharlar orasida qiymat bor deb — noto'g'ri); (3) tartib yo'q — kategoriyalar tartibli emas (shaharlar — ixtiyoriy tartib; chiziq tartib bordek ko'rsatadi — chalg'ituvchi; vaqt — tabiiy tartib). "Nega bar to'g'ri": (a) alohida ustun — bar har kategoriyani alohida ustun (orasida bog'lanish yo'q — mustaqil; shaharlar alohida); (b) taqqoslash — bar balandlik taqqoslash (kategoriyalar — qaysi katta; oraliq yo'q); (c) tartib erkin — bar tartibi erkin (saralash mumkin — katta-kichik; chiziq tartib talab); (d) oraliq yo'q — bar oraliqni ko'rsatmaydi (faqat kategoriya qiymati — to'g'ri). "Umumiy qoida": chiziq (uzluksiz — vaqt, tartibli son; oraliq ma'noli), bar (kategoriya — alohida, tartibsiz; oraliq yo'q). Saboqlar: chiziq oraliq (uzluksiz — vaqt); kategoriya oraliq yo'q (alohida); chiziq soxta oraliq (chalg'ituvchi); bar to'g'ri (alohida ustun, taqqoslash). To'g'ri: vaqt/uzluksiz — chiziq; kategoriya — bar; grafik turi ma'lumotga mos (uzluksiz vs kategoriya). Muvozanat: chiziq (o'zgarish — vaqt) + bar (taqqoslash — kategoriya); to'g'ri tur (ma'lumotga). Bu vizualizatsiya asosiy (grafik turi ma'lumotga mos — uzluksiz chiziq, kategoriya bar; noto'g'ri tur chalg'itadi). Chiziqli grafik — uzluksizlik (vaqt; kategoriya — bar).

1. Nega chiziq uzluksizlik

  • Chiziq oraliqni bog'laydi (orasida qiymat bor deb)
  • Uzluksiz (vaqt — har lahza qiymat)
  • Oraliq ma'noli (o'zgarish — trend)

2. Nega kategoriya chalg'ituvchi

  • Kategoriya alohida (orasida qiymat yo'q)
  • Chiziq soxta oraliq (shaharlar orasi — ma'nosiz)
  • Tartib yo'q (chiziq tartib bordek)

3. Nega bar to'g'ri

  • Alohida ustun (mustaqil — bog'lanish yo'q)
  • Taqqoslash (balandlik — kategoriya)
  • Tartib erkin (saralash mumkin)

4. Chiziq vs bar

Chiziq Bar
Uzluksiz (vaqt) Kategoriya (alohida)
Oraliq ma'noli Oraliq yo'q
Tartibli Tartibsiz

5. Saboqlar

  1. Chiziq oraliq (uzluksiz — vaqt)
  2. Kategoriya oraliq yo'q (alohida)
  3. Chiziq soxta oraliq (chalg'ituvchi)
  4. Bar to'g'ri (kategoriya — taqqoslash)

6. Xulosa

  1. Chiziq uzluksizlik (vaqt — oraliq ma'noli)
  2. Kategoriya chiziq chalg'ituvchi (soxta oraliq)
  3. Bar to'g'ri (alohida ustun — kategoriya)
  4. Grafik turi ma'lumotga mos (uzluksiz/kategoriya)

Nimani mustahkamlaydi: 2.1, 2.7-bo'limlar.


Xulosa

Bu darsda chiziqli grafikni o'rgandik.

Eng muhim uch fikr:

  1. Chiziqli grafik va ko'p chiziq. Chiziqli grafik (ax.plot(x, y)) — nuqtalarni chiziq bilan bog'laydi (vaqt bo'yicha o'zgarish — x vaqt, y qiymat; trend, mavsumiylik; eng ko'p ishlatiladi). Ko'p chiziq — bir grafikda (taqqoslash — 2023 vs 2024; label + ax.legend()); har chiziq avtomatik rang.

  2. Uslub va vaqt qatori. Uslub — color (rang), linestyle ("-" to'liq, "--" uzuq, ":"), marker ("o", "s", "^"); farqlash (rang — ko'z; linestyle — rangsiz; marker — nuqtalar). Vaqt qatori grafigi — sana x (3.12; chiziqli ideal — uzluksiz o'zgarish); Pandas df.plot() (tez — indeks sana avtomatik).

  3. O'zgarishni ko'rish. Legend/bezash — legend (ko'p chiziq — shart), title/xlabel/ylabel 5.1-bob. Chiziqli grafik — vaqt bo'yicha o'zgarish (trend, taqqoslash, mavsumiylik, anomaliya); chiziq uzluksizlik anglatadi (vaqt — oraliq ma'noli; kategoriya — bar, chiziq chalg'ituvchi). Data Science'da keng (moliya, savdo, sensor; EDA 9-qism). Tuzoqlar: legend yo'q (ko'p chiziq), juda ko'p chiziq (spagetti — 5-7 kam), kategoriyaga chiziqli (bar), o'q boshi 0 emas (aldash — 5.13), sana tartibi.

Keyingi darsda ustunli grafik (bar chart)ni o'rganamiz: kategoriyalarni taqqoslash — har kategoriya alohida ustun (savdo shahar bo'yicha, mahsulot reytingi).

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!