Mundarija (22)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. Seaborn nima (Matplotlib ustida)
- 2.2. DataFrame bilan (x, y, hue)
- 2.3. Statistik grafiklar (regplot, histplot)
- 2.4. hue (guruh — rang)
- 2.5. Matplotlib bilan integratsiya
- 2.6. Seaborn amaliyoti
- 2.7. Seaborn tuzoqlari
- 2.8. Seaborn — statistik vizualizatsiya kam kod bilan
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — Seaborn scatterplot
- Misol 2 — regplot (trend chizig'i)
- Misol 3 — histplot (KDE)
- Misol 4 — boxplot (guruh, hue)
- 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.7-dars: Seaborn
5-QISM — VIZUALIZATSIYA · 7-dars
1. Kirish va motivatsiya
Matplotlib kuchli, lekin ko'p kod talab qiladi va standart ko'rinishi oddiy. Seaborn — Matplotlib ustida qurilgan yuqori darajali kutubxona: chiroyli grafiklar, statistik vizualizatsiya (regressiya chizig'i, taqsimot, korrelyatsiya), va DataFrame bilan to'g'ridan ishlash — kam kod bilan. Seaborn'da bir qator kod chiroyli, statistikaga boy grafik beradi: sns.scatterplot(data=df, x="reklama", y="savdo", hue="shahar") — nuqtalar, rang guruh bilan, avtomatik legend. Nega muhim? (1) Kam kod — chiroyli grafik tez; (2) Statistik — regressiya, taqsimot, korrelyatsiya (o'rnatilgan); (3) DataFrame — ustun nomlari bilan to'g'ridan. Bu dars Seaborn'ni o'rgatadi — statistik vizualizatsiya kam kod bilan.
Seaborn — yuqori darajali vizualizatsiya: Matplotlib ustida (chiroyli, statistik), DataFrame (data=df, x=, y=, hue= — ustun nomlari), statistik grafiklar (scatterplot/histplot/boxplot/regplot/heatmap), hue (guruh — rang, avtomatik legend), uslub (sns.set_theme — chiroyli), Matplotlib bilan (ax= — birga). Foydalanish: chiroyli grafik, statistik, DataFrame. Bu 5.1 (Matplotlib), 3-qism (Pandas) bilan bog'liq. Seaborn — yuqori daraja. DataFrame. Statistik.
Real vaziyat. Data Scientist Matplotlib'da ko'p kod yozdi (fig, ax, plot, bezash — har grafik). Seaborn bilan kam kod: sns.scatterplot(data=df, x="reklama", y="savdo", hue="shahar") — nuqtalar + shahar rang + avtomatik legend + chiroyli (bir qator!). Statistik: sns.regplot(data=df, x="reklama", y="savdo") — scatter + regressiya chizig'i (trend, avtomatik); sns.histplot(df["ball"], kde=True) — histogram + KDE (silliq taqsimot egrisi). DataFrame: ustun nomlari bilan (x="reklama" — massiv emas). hue (guruh — rang; klaster). Seaborn ma'lumotni kam kod, chiroyli, statistik ko'rsatdi (Matplotlib ustida). Seaborn — yuqori daraja vizualizatsiya.
Bu darsda Seaborn'ni o'rganamiz.
Bu darsda:
- Seaborn nima (Matplotlib ustida)
- DataFrame bilan (x, y, hue)
- Statistik grafiklar (regplot, histplot)
- hue (guruh — rang)
- Matplotlib bilan integratsiya
- Seaborn amaliyoti
- Seaborn tuzoqlari
- Amaliy: Seaborn modeli
ℹ Misollar real seaborn/matplotlib bilan (Agg — grafik xususiyatlari matn bilan tekshiriladi) ishlaydi.
2. Nazariya — chuqur tushuntirish
2.1. Seaborn nima (Matplotlib ustida)
Yuqori daraja:
import seaborn as sns
import matplotlib.pyplot as plt
# Seaborn — Matplotlib ustida (chiroyli, statistik, kam kod)
sns.set_theme() # chiroyli uslub
# bir qator — chiroyli grafik
sns.histplot(data=df, x="ball") # histogram (chiroyli)
# Matplotlib ustida (ax bilan birga ishlaydi) Seaborn nima (Matplotlib ustida) — yuqori daraja: Seaborn (import seaborn as sns) — Matplotlib ustida qurilgan (chiroyli, statistik, kam kod); sns.set_theme() (chiroyli uslub). Sabab: Matplotlib ko'p kod (fig, ax, plot, bezash) va oddiy ko'rinish; Seaborn kam kod (bir qator — chiroyli grafik) va statistik (regressiya, taqsimot o'rnatilgan). Matplotlib ustida (Seaborn Matplotlib ishlatadi — ax bilan birga; poydevor — 5.1). Seaborn (yuqori daraja — qulay), Matplotlib (pastki — moslashuvchan). Seaborn — Matplotlib ustida (chiroyli, statistik, kam kod). Yuqori daraja. Statistik.
2.2. DataFrame bilan (x, y, hue)
Ustun nomlari bilan:
import seaborn as sns
# DataFrame — ustun nomlari (massiv emas)
sns.scatterplot(data=df, x="reklama", y="savdo")
# hue — guruh (rang, avtomatik legend)
sns.scatterplot(data=df, x="reklama", y="savdo", hue="shahar")
# data=, x=, y=, hue= — ustun nomlari DataFrame bilan (x, y, hue) — ustun nomlari: sns.scatterplot(data=df, x="reklama", y="savdo", hue="shahar") (data= DataFrame; x=/y= ustun nomlari (massiv emas); hue= guruh — rang). Sabab: Seaborn DataFrame bilan to'g'ridan (Pandas — 3-qism; ustun nomlari — x="reklama" massiv o'rniga); hue guruhni avtomatik (rang + legend — Matplotlib'da qo'lda). data=df (jadval), x=/y= (ustun), hue= (guruh rang). Bu Seaborn kuchi (DataFrame + kam kod). DataFrame bilan — data=, x=/y=, hue= (ustun nomlari). Ustun nomi. hue.
2.3. Statistik grafiklar (regplot, histplot)
Statistik grafiklar — o'rnatilgan statistika: regplot (scatter + regressiya chizig'i — trend, ishonch oralig'i; avtomatik), histplot (histogram + KDE — silliq zichlik egrisi; kde=True), boxplot/violinplot (taqsimot — violin: box + zichlik shakli), heatmap (korrelyatsiya matritsasi — rangli; 5.8), pairplot (barcha juftlik scatter — bir marta). Sabab: Seaborn statistikani o'rnatgan (regressiya — np.polyfit qo'lda emas; KDE — silliq; Matplotlib'da qo'lda hisob); statistik vizualizatsiya (grafik + statistika — bir qator). regplot (trend), histplot (KDE), violinplot (shakl). Statistik grafiklar — regplot/histplot/violinplot (o'rnatilgan). Statistik. Bir qator.
2.4. hue (guruh — rang)
hue (guruh — rang) — Seaborn kuchi: hue= parametr (kategoriya ustun — har guruh boshqa rang + avtomatik legend); barcha Seaborn grafikda (scatterplot, histplot, boxplot — hue=). Sabab: guruh bo'yicha ko'rsatish (shahar, jins — har guruh rang; klaster, taqqoslash); Matplotlib'da qo'lda (har guruh alohida plot + rang + legend); Seaborn avtomatik (hue="shahar" — hammasi). hue (guruh — rang), style= (guruh — marker/chiziq turi), size= (guruh — o'lcham). hue eng ko'p (guruh vizualizatsiyasi — bir parametr). hue — guruh rang (hue=; avtomatik legend). Guruh. Avtomatik.
2.5. Matplotlib bilan integratsiya
Matplotlib bilan integratsiya — birga ishlash: Seaborn Matplotlib ustida (grafik Matplotlib ax'da; ax= bilan joylashtirish); bezash (Matplotlib metodlari — ax.set_title, plt.savefig; 5.1). Sabab: Seaborn chizadi, lekin bezash/saqlash Matplotlib (ax — Seaborn qaytaradi yoki ax= beradi); birga (Seaborn grafik + Matplotlib bezash). sns.scatterplot(..., ax=ax) (Matplotlib ax'da), ax.set_title(...) (bezash), fig.savefig(...) (saqlash — 5.1). Subplots (Matplotlib — 5.10; Seaborn har ax'da). Seaborn (grafik) + Matplotlib (bezash/tuzilma). Matplotlib bilan — ax=, bezash (birga). Integratsiya. Birga.
2.6. Seaborn amaliyoti
Seaborn amaliyoti: sns.set_theme() (chiroyli uslub); data=df, x=, y= (DataFrame — ustun nomlari); hue= (guruh — rang); statistik (regplot trend, histplot KDE, violinplot shakl); heatmap (korrelyatsiya — 5.8); pairplot (barcha juftlik); Matplotlib (ax=, bezash — birga). Tuzoqlar: DataFrame emas (massiv — data= afzal), hue ko'p guruh (chalkash), Matplotlib aralash (bezash — Matplotlib), statistik faraz (regplot chiziqli). Amaliyot — set_theme, DataFrame, hue, statistik. Yuqori daraja. Kam kod.
2.7. Seaborn tuzoqlari
Seaborn asosiy tuzoqlari: DataFrame emas (Seaborn DataFrame uchun ideal — data=df, x="ustun"; massiv ham ishlaydi, lekin DataFrame afzal — ustun nomi, hue); hue ko'p guruh (hue — kam guruh (2-6 rang); ko'p guruh — ranglar ajratib bo'lmaydi, chalkash); Matplotlib aralash (Seaborn chizadi, bezash Matplotlib (ax.set_title, savefig); aralashtirmang — Seaborn grafik + Matplotlib bezash); statistik faraz (regplot — chiziqli regressiya; nochiziqli (egri) — order= yoki lowess; noto'g'ri trend); figure vs axes daraja (Seaborn ikki turi — scatterplot (axes — bir grafik) vs relplot (figure — subplots; ax yo'q); chalkash); KDE tekislash (histplot(kde=True) — KDE silliq, lekin kichik namunada aldash; katta namuna); rang standart (Seaborn rang — chiroyli, lekin ma'noli rang tanlov — ketma-ket/kategoriya); eski API (sns.distplot — eski; histplot/displot yangi). Sabab: Seaborn daraja/statistik nozik (DataFrame, hue, figure/axes — chalkash yoki noto'g'ri). Yechim: DataFrame, kam guruh hue, Matplotlib bezash, chiziqli tekshir. Tuzoqlar — DataFrame, hue, Matplotlib, statistik.
2.8. Seaborn — statistik vizualizatsiya kam kod bilan
Seaborn asosiy g'oyasi — statistik vizualizatsiya kam kod bilan: Matplotlib (poydevor — 5.1; ko'p kod, oddiy) ustida yuqori daraja (chiroyli, statistik, kam kod); DataFrame bilan to'g'ridan (ustun nomlari, hue). sns.set_theme (chiroyli), DataFrame (data=df, x=, y=, hue= — ustun nomlari, guruh rang), statistik grafiklar (regplot trend, histplot KDE, violinplot shakl, heatmap korrelyatsiya 5.8, pairplot juftlik), hue (guruh — rang, avtomatik legend), Matplotlib bilan (ax=, bezash — birga). Foydalanish: kam kod (chiroyli grafik tez), statistik (regressiya, taqsimot — o'rnatilgan), DataFrame (Pandas bilan). Seaborn (qulay) + Matplotlib (moslashuvchan) — birga (Seaborn chizadi, Matplotlib bezaydi/tuzilma). Data Science'da keng (EDA — tez chiroyli grafik; statistik vizualizatsiya — 9-qism). Bu 5.1 (Matplotlib) ustida va 3-qism (Pandas — DataFrame), 5.8 (heatmap) bilan. Seaborn — statistik vizualizatsiya kam kod bilan (Matplotlib ustida, DataFrame). Yuqori daraja. Kam kod.
3. Tez ma'lumotnoma
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_theme() # chiroyli uslub
# DATAFRAME bilan (ustun nomlari):
sns.scatterplot(data=df, x="reklama", y="savdo", hue="shahar")
# data= (jadval) · x=/y= (ustun) · hue= (guruh — rang, legend)
# STATISTIK GRAFIKLAR (o'rnatilgan):
sns.regplot(data=df, x="reklama", y="savdo") # scatter + trend
sns.histplot(data=df, x="ball", kde=True) # histogram + KDE
sns.boxplot(data=df, x="shahar", y="maosh") # box (guruh)
sns.violinplot(data=df, x="shahar", y="maosh") # box + shakl
sns.heatmap(df.corr(), annot=True) # korrelyatsiya (5.8)
sns.pairplot(df) # barcha juftlik
# MATPLOTLIB bilan (bezash/saqlash):
fig, ax = plt.subplots()
sns.scatterplot(data=df, x="a", y="b", ax=ax)
ax.set_title("..."); fig.savefig("g.png")
QOIDA: DataFrame (data=) · hue kam guruh · bezash Matplotlib · statistik farazSeaborn xulosasi
Seaborn — statistik vizualizatsiya kam kod bilan (Matplotlib ustida)
DataFrame — data=df, x=, y=, hue= (ustun nomlari, guruh rang)
Statistik grafiklar — regplot (trend), histplot (KDE), violinplot
hue — guruh (rang, avtomatik legend)
Matplotlib bilan — ax=, bezash (Seaborn chizadi, Matplotlib bezaydi)4. Batafsil misollar
Misollar real seaborn/matplotlib bilan (Agg — grafik xususiyatlari matn bilan tekshiriladi) ishlaydi.
Misol 1 — Seaborn scatterplot
"""Seaborn scatterplot (real seaborn/pandas)."""
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
def main() -> None:
df = pd.DataFrame({
"reklama": [10, 20, 30, 40, 50, 15, 25, 35],
"savdo": [100, 180, 250, 340, 480, 130, 220, 300],
"shahar": ["T", "T", "T", "T", "S", "S", "S", "S"],
})
print("=== 1. scatterplot (DataFrame) ===")
fig, ax = plt.subplots()
sns.scatterplot(data=df, x="reklama", y="savdo", ax=ax)
print(f" nuqtalar: {len(ax.collections[0].get_offsets())}")
print("\n=== 2. hue (guruh — rang) ===")
fig2, ax2 = plt.subplots()
sns.scatterplot(data=df, x="reklama", y="savdo", hue="shahar", ax=ax2)
print(f" guruhlar (collections): {len(ax2.collections)}")
print("\n=== 3. Legend (avtomatik) ===")
print(f" legend bor: {ax2.get_legend() is not None}")
print("\n=== 4. Ustun nomlari bilan ===")
print(f" x=reklama, y=savdo, hue=shahar (massiv emas)")
plt.close("all")
print(" ⭐ Seaborn — DataFrame (x, y, hue)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. scatterplot (DataFrame) ===
nuqtalar: 8
=== 2. hue (guruh — rang) ===
guruhlar (collections): 1
=== 3. Legend (avtomatik) ===
legend bor: True
=== 4. Ustun nomlari bilan ===
x=reklama, y=savdo, hue=shahar (massiv emas)
⭐ Seaborn — DataFrame (x, y, hue)Nima ko'rsatdi: 2.1, 2.2-bo'limlar.
Misol 2 — regplot (trend chizig'i)
"""Seaborn regplot: trend chizig'i (real seaborn)."""
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
def main() -> None:
df = pd.DataFrame({
"reklama": [10, 20, 30, 40, 50],
"savdo": [100, 210, 290, 420, 480],
})
print("=== 1. regplot (scatter + trend) ===")
fig, ax = plt.subplots()
sns.regplot(data=df, x="reklama", y="savdo", ax=ax)
print(f" chiziqlar (trend): {len(ax.lines)}")
print("\n=== 2. Nuqtalar ===")
print(f" nuqtalar bor: {len(ax.collections) > 0}")
print("\n=== 3. Regressiya chizig'i ===")
print(" regplot avtomatik trend (ishonch oralig'i bilan)")
print("\n=== 4. Tushuntirish ===")
print(" regplot — scatter + regressiya (statistik)")
plt.close("all")
print(" ⭐ regplot — trend chizig'i (o'rnatilgan)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. regplot (scatter + trend) ===
chiziqlar (trend): 1
=== 2. Nuqtalar ===
nuqtalar bor: True
=== 3. Regressiya chizig'i ===
regplot avtomatik trend (ishonch oralig'i bilan)
=== 4. Tushuntirish ===
regplot — scatter + regressiya (statistik)
⭐ regplot — trend chizig'i (o'rnatilgan)Nima ko'rsatdi: 2.3-bo'lim.
Misol 3 — histplot (KDE)
"""Seaborn histplot: KDE (real seaborn/numpy)."""
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
def main() -> None:
np.random.seed(0)
ball = np.random.normal(70, 10, 1000)
print("=== 1. histplot (histogram) ===")
fig, ax = plt.subplots()
sns.histplot(ball, ax=ax)
print(f" ustunlar (patches): {len(ax.patches) > 0}")
print("\n=== 2. KDE (silliq egri) ===")
fig2, ax2 = plt.subplots()
sns.histplot(ball, kde=True, ax=ax2)
print(f" KDE chizig'i: {len(ax2.lines) > 0}")
print("\n=== 3. KDE nima ===")
print(" KDE — silliq zichlik egrisi (taqsimot shakli)")
print("\n=== 4. Tushuntirish ===")
print(" histplot + kde=True (histogram + silliq egri)")
plt.close("all")
print(" ⭐ histplot — histogram + KDE (statistik)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. histplot (histogram) ===
ustunlar (patches): True
=== 2. KDE (silliq egri) ===
KDE chizig'i: True
=== 3. KDE nima ===
KDE — silliq zichlik egrisi (taqsimot shakli)
=== 4. Tushuntirish ===
histplot + kde=True (histogram + silliq egri)
⭐ histplot — histogram + KDE (statistik)Nima ko'rsatdi: 2.3-bo'lim.
Misol 4 — boxplot (guruh, hue)
"""Seaborn boxplot: guruh (real seaborn/pandas)."""
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
def main() -> None:
np.random.seed(0)
df = pd.DataFrame({
"shahar": ["T"] * 100 + ["S"] * 100 + ["B"] * 100,
"maosh": np.concatenate([
np.random.normal(500, 80, 100),
np.random.normal(400, 60, 100),
np.random.normal(600, 100, 100),
]),
})
print("=== 1. boxplot (guruh bo'yicha) ===")
fig, ax = plt.subplots()
sns.boxplot(data=df, x="shahar", y="maosh", ax=ax)
print(f" qutilar (patches): {len(ax.patches) >= 3}")
print("\n=== 2. Guruh medianlari ===")
medianlar = df.groupby("shahar")["maosh"].median().round(0)
print(f" {medianlar.to_dict()}")
print("\n=== 3. Kam kod (bir qator) ===")
print(" sns.boxplot(data, x, y) — Matplotlib'da ko'p kod")
print("\n=== 4. Tushuntirish ===")
print(" DataFrame + x/y — guruh boxplot (kam kod)")
plt.close("all")
print(" ⭐ Seaborn boxplot — guruh (kam kod)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. boxplot (guruh bo'yicha) ===
qutilar (patches): True
=== 2. Guruh medianlari ===
{'B': 592.0, 'S': 401.0, 'T': 508.0}
=== 3. Kam kod (bir qator) ===
sns.boxplot(data, x, y) — Matplotlib'da ko'p kod
=== 4. Tushuntirish ===
DataFrame + x/y — guruh boxplot (kam kod)
⭐ Seaborn boxplot — guruh (kam kod)Nima ko'rsatdi: 2.3, 2.4-bo'limlar.
5. To'g'ri va noto'g'ri tushunishlar
| Noto'g'ri fikr | To'g'risi |
|---|---|
| "Seaborn Matplotlib o'rnini" | Ustida (birga) |
| "Seaborn massiv uchun" | DataFrame afzal (data=) |
| "hue ko'p guruh OK" | 2-6 (ko'p — chalkash) |
| "regplot har aloqa" | Chiziqli (nochiziqli — order=) |
| "Seaborn'da bezash" | Matplotlib (ax.set_title) |
| "KDE doim aniq" | Kichik namuna aldash |
| "distplot yangi" | histplot/displot (yangi) |
| "kam kod = kam nazorat" | Matplotlib bilan (nazorat) |
6. Keng tarqalgan xatolar va yechimlari
1. DataFrame emas
sns.scatterplot(x=massiv1, y=massiv2) # ishlaydi, lekin # ⚠️
sns.scatterplot(data=df, x="a", y="b") # DataFrame (afzal) # ✅2. hue ko'p guruh
sns.scatterplot(..., hue="id") # 100 guruh (chalkash) # ⚠️
sns.scatterplot(..., hue="kategoriya") # kam guruh # ✅3. Matplotlib aralash
sns.scatterplot(...); plt.title(...) # holatli (chalkash) # ⚠️
sns.scatterplot(..., ax=ax); ax.set_title(...) # ✅4. regplot nochiziqli
sns.regplot(data=df, x="x", y="y") # chiziqli (egri xato) # ⚠️
sns.regplot(..., order=2) # polinomial (egri) # ✅5. figure vs axes
sns.relplot(...); ax.set_title(...) # relplot — figure (ax yo'q) # ⚠️
sns.scatterplot(..., ax=ax) # axes (ax bilan) # ✅6. Eski API
sns.distplot(data) # eski (o'chirilgan) # ⚠️
sns.histplot(data) # yangi # ✅7. set_theme unutish
sns.histplot(...) # standart Matplotlib ko'rinish # ⚠️
sns.set_theme(); sns.histplot(...) # chiroyli # ✅7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 5.1-dars (o'tilgan): Matplotlib (poydevor)
- 3-qism (o'tilgan): Pandas (DataFrame)
- 5.8-dars: Heatmap (korrelyatsiya)
- 5.9-dars: Taqsimot grafiklari
- 9-qism (reja): EDA (tez vizualizatsiya)
8. Eng yaxshi amaliyotlar
sns.set_theme()— chiroyli uslub.DataFrame —
data=df, x=, y=.hue=— guruh (kam guruh, rang).Statistik — regplot/histplot/violinplot.
Bezash — Matplotlib (
ax.set_title).ax=— Matplotlib bilan birga.regplot — chiziqli (nochiziqli — order=).
Seaborn — statistik vizualizatsiya kam kod.
9. Amaliy topshiriq
Vazifa 1: Bashorat qiling
1. # Seaborn nima?
2. # Matplotlib bilan aloqasi?
3. # data= nima?
4. # x=/y= nima?
5. # hue nima?
6. # regplot nima?
7. # histplot kde?
8. # violinplot nima?
9. # bezash qayerda?
10. # hue ko'p guruh?
11. # Seaborn massivmi?
12. # nega Seaborn muhim?Javoblar
- Yuqori darajali vizualizatsiya (Matplotlib ustida)
- Ustida (birga — chizadi/bezaydi)
- DataFrame
- Ustun nomlari
- Guruh (rang, legend)
- scatter + regressiya (trend)
- Histogram + KDE (silliq)
- Box + shakl (taqsimot)
- Matplotlib (ax.set_title)
- Chalkash (2-6 kam)
- DataFrame afzal (data=)
- Statistik vizualizatsiya kam kod
Vazifa 2: Xatolarni tuzating
1. sns.scatterplot(x=m1, y=m2) # DataFrame
2. sns.scatterplot(..., hue="id") # 100 guruh
3. sns.scatterplot(...); plt.title(...)
4. sns.regplot(...) # egri aloqa
5. sns.distplot(data) # eskiJavoblar
1. data=df, x="a", y="b"
2. hue="kategoriya" (kam guruh)
3. ax=ax; ax.set_title(...)
4. order=2 (polinomial)
5. sns.histplot(data)Vazifa 3: Seaborn
Modellang:
- Matplotlib ustida
- Chiroyli
- Statistik
- Kam kod
Vazifa 4: DataFrame
Modellang:
- data=
- x=/y=
- hue=
- Ustun nomlari
Vazifa 5: Statistik grafiklar
Modellang:
- regplot
- histplot (KDE)
- violinplot
- heatmap
Vazifa 6: Integratsiya
Modellang:
- ax=
- Bezash
- Matplotlib
- Birga
Vazifa 7: O'ylash
Seaborn Matplotlib ustida qurilgan — kam kod bilan chiroyli, statistik grafik beradi, lekin Matplotlib'ni almashtirmaydi (bezash uchun hali ham kerak). Nima uchun bu "qatlam ustida qatlam" naqshi (Pandas NumPy ustida — 3.1) Data Science ekotizimida takrorlanadi, va nega ikkalasini (yuqori + past daraja) bilish foydali?
Javob
Qisqa javob: Seaborn Matplotlib ustida (kam kod, chiroyli), lekin almashtirmaydi; "qatlam ustida qatlam" naqshi takrorlanadi (Pandas NumPy ustida — 3.1), ikkalasini bilish foydali, chunki: (1) qatlam qayta ishlatadi — Seaborn Matplotlib qayta ishlatadi (o'zi chizmaydi — Matplotlib'ga topshiradi; Pandas NumPy'ga — 3.1); "g'ildirak qayta ixtiro qilma" (poydevor tayyor); (2) yuqori daraja — qulaylik — Seaborn kam kod (bir qator — chiroyli, statistik; umumiy holatlar oson); Pandas (jadval — oson); (3) pastki daraja — nazorat — Matplotlib to'liq nazorat (har detal — o'q, rang, joylashuv; Seaborn cheklangan — umumiy); NumPy (tezlik, moslashuvchanlik). "Nega naqsh takrorlanadi": (a) abstraksiya qatlami — har qatlam o'z darajasi (yuqori — qulay, umumiy; pastki — nazorat, maxsus); umumiy ish (yuqori — tez), maxsus ish (pastki — nazorat); (b) 80/20 — ish 80% oddiy (yuqori daraja — Seaborn/Pandas; kam kod), 20% maxsus (pastki — Matplotlib/NumPy; nazorat); (c) modullik — qatlamlar mustaqil (Matplotlib yaxshilansa — Seaborn ham; ajratilgan); (d) ekotizim — butun Python DS (NumPy → Pandas → Seaborn; sklearn NumPy ustida — 20-qism); bir naqsh. "Nega ikkalasi": (1) yuqori — tez (Seaborn — umumiy grafik tez; Pandas — jadval); (2) pastki — maxsus (Matplotlib — Seaborn qilolmaydigan bezash; NumPy — maxsus hisob); (3) yuqori pastkiga tayanadi (Seaborn Matplotlib — bezash Matplotlib; bilish kerak); (4) kerak bo'lganda tushish (yuqori yetmaganda — pastki; Seaborn cheklanganda — Matplotlib). Saboqlar: qatlam qayta ishlatadi (poydevor); yuqori qulay (kam kod), pastki nazorat (maxsus); naqsh takrorlanadi (ekotizim — bir g'oya); ikkalasi (yuqori tez + pastki nazorat). To'g'ri: yuqori daraja (Seaborn/Pandas — tez); pastki (Matplotlib/NumPy — nazorat, kerak bo'lganda); ikkalasi bil. Muvozanat: qulaylik (yuqori — 80%) + nazorat (pastki — 20%); ikkalasi (naqsh). Bu Data Science ekotizim asosiy (qatlamli — NumPy/Pandas/Seaborn/sklearn; yuqori tez, pastki nazorat; ikkalasi bil). Seaborn + Matplotlib — yuqori + pastki (qulaylik + nazorat).
1. Nega qatlam naqshi takrorlanadi
- Qatlam qayta ishlatadi (Seaborn Matplotlib; Pandas NumPy)
- Abstraksiya daraja (yuqori qulay, pastki nazorat)
- 80/20 (oddiy — yuqori; maxsus — pastki)
- Ekotizim (bir naqsh — NumPy/Pandas/Seaborn/sklearn)
2. Nega ikkalasi foydali
- Yuqori tez (Seaborn — umumiy grafik)
- Pastki maxsus (Matplotlib — bezash, nazorat)
- Yuqori pastkiga tayanadi (bezash Matplotlib)
- Kerak bo'lganda tushish (Seaborn cheklanganda)
3. Yuqori vs pastki
| Yuqori (Seaborn) | Pastki (Matplotlib) |
|---|---|
| Kam kod, chiroyli | To'liq nazorat |
| Umumiy (80%) | Maxsus (20%) |
| Qulay | Moslashuvchan |
4. Saboqlar
- Qatlam qayta ishlatadi (poydevor)
- Yuqori qulay, pastki nazorat
- Naqsh takrorlanadi (ekotizim)
- Ikkalasi (tez + nazorat)
5. Xulosa
- Seaborn Matplotlib ustida (qayta ishlatadi)
- Yuqori qulay (kam kod), pastki nazorat
- Naqsh takrorlanadi (Pandas NumPy ustida)
- Ikkalasi bil (yuqori tez + pastki maxsus)
Nimani mustahkamlaydi: 2.1, 2.5-bo'limlar.
Xulosa
Bu darsda Seaborn'ni o'rgandik.
Eng muhim uch fikr:
Seaborn va DataFrame. Seaborn (
sns) — Matplotlib ustida qurilgan yuqori daraja (chiroyli, statistik, kam kod;sns.set_theme()). DataFrame bilan —sns.scatterplot(data=df, x="reklama", y="savdo", hue="shahar")(data=jadval,x=/y=ustun nomlari,hue=guruh — rang + avtomatik legend); Pandas bilan to'g'ridan.Statistik grafiklar va hue. Statistik grafiklar (o'rnatilgan):
regplot(scatter + regressiya chizig'i — trend),histplot(histogram + KDE silliq egri;kde=True),violinplot(box + shakl),heatmap(korrelyatsiya — 5.8),pairplot(barcha juftlik). hue (guruh — rang, avtomatik legend; barcha grafikda; kam guruh 2-6).Kam kod, statistik. Matplotlib bilan — Seaborn chizadi, bezash/saqlash Matplotlib (
ax=,ax.set_title,fig.savefig; birga). Seaborn — statistik vizualizatsiya kam kod bilan (Matplotlib ustida — chiroyli, statistik; DataFrame). Seaborn (yuqori — qulay) + Matplotlib (pastki — nazorat) — qatlam naqshi (Pandas NumPy ustida 3.1; ekotizim takrorlaydi; ikkalasi bil — yuqori tez, pastki maxsus). Data Science'da keng (EDA — tez chiroyli grafik). Tuzoqlar: DataFrame afzal (data=), hue ko'p guruh (chalkash), Matplotlib bezash, regplot chiziqli (nochiziqliorder=), eski API (distplot→histplot).
Keyingi darsda heatmap (issiqlik xaritasi)ni o'rganamiz: korrelyatsiya matritsasini rangli ko'rsatish — ko'p o'zgaruvchan aloqasini bir qarashda (4.9 korrelyatsiya matritsasi).
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!