Mundarija (22)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. Plotly nima
- 2.2. Plotly Express (px)
- 2.3. Grafik turlari
- 2.4. Rang va o'lcham
- 2.5. Graph Objects (go)
- 2.6. Grafikni bezash (update_layout)
- 2.7. Saqlash (HTML)
- 2.8. Interaktiv vs statik
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — Plotly Express (grafik turlari)
- Misol 2 — Rang va o'lcham (ko'p o'zgaruvchi)
- Misol 3 — Graph Objects (aralash grafik)
- Misol 4 — Amaliy: interaktiv dashboard grafigi
- 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
24.15-dars: Interaktiv vizualizatsiya
24-QISM — MA'LUMOT TAHLILI · 15-dars
1. Kirish va motivatsiya
24.13–24.14 da Matplotlib va Seaborn bilan statik (harakatsiz) grafik chizdik — rasm (PNG). Statik grafik hisobot uchun yaxshi, lekin interaktiv (harakatlanuvchi) grafik ko'proq: sichqoncha bilan kattalashtirish (zoom), nuqta ustida ma'lumot (hover — aniq qiymat), toifani yashirish (legend bosish), aylantirish (3D). Veb sahifa, dashboard, taqdimotda interaktiv grafik foydalanuvchiga ma'lumotni o'zi kashf qilish imkonini beradi.
Plotly — Python'ning eng mashhur interaktiv vizualizatsiya kutubxonasi: grafik veb (HTML/JavaScript) da, sichqoncha bilan boshqariladi. Plotly Express (px) — yuqori daraja (Seaborn kabi — DataFrame bilan bir qator), Graph Objects (go) — past daraja (to'liq nazorat). px.line, px.bar, px.scatter — interaktiv grafik. Dash (Plotly'ning veb-freymvorki) — to'liq dashboard. Interaktiv vizualizatsiya — zamonaviy ma'lumot taqdimoti (veb, dashboard).
Real vaziyat. Bir dashboard 100 mahsulot sotuvini ko'rsatishi kerak edi — statik grafikda hammasi sig'mas, o'qib bo'lmasdi. Plotly bilan: interaktiv grafik (kattalashtirish, hover bilan aniq qiymat, filtr). Foydalanuvchi o'zi kerakli qismini ko'rdi, tafsilotni oldi. Statik hisobot o'rniga interaktiv dashboard — foydalanuvchi ma'lumotni o'zi kashf qildi. Interaktivlik — katta ma'lumotni taqdim etishning kaliti.
Bu darsda Plotly bilan interaktiv vizualizatsiyani o'rganamiz.
Bu darsda:
- Plotly nima (interaktiv, veb)
- Plotly Express (
px) - Grafik turlari (line, bar, scatter)
- Rang va o'lcham (hue kabi)
- Graph Objects (
go) - Grafikni bezash (
update_layout) - Saqlash (HTML)
- Amaliy: interaktiv dashboard
ℹ Misollarda Plotly bilan sinaladi; grafik tuzilishi (trace turi, soni, layout) tekshiriladi. Ehtiyot: fayl nomi
plotly.pybo'lmasin (paketni to'sadi).
2. Nazariya — chuqur tushuntirish
2.1. Plotly nima
Plotly — interaktiv veb grafik:
import plotly.express as px
fig = px.line(df, x="oy", y="sotuv")
fig.show() # brauzerda interaktiv
fig.write_html("grafik.html") # HTML faylga Plotly — interaktiv (harakatlanuvchi) vizualizatsiya kutubxonasi: grafik veb (HTML + JavaScript) da, sichqoncha bilan boshqariladi (zoom, hover — aniq qiymat, filtr). Matplotlib/Seaborn'dan farq: interaktiv (statik emas), vebga mos. px (Express — yuqori daraja), go (Graph Objects — past). fig.show() (brauzer), write_html (fayl). Veb, dashboard uchun.
2.2. Plotly Express (px)
Yuqori daraja — bir qator:
import plotly.express as px
px.line(df, x="oy", y="sotuv") # chiziq
px.bar(df, x="kat", y="sotuv") # ustun
px.scatter(df, x="narx", y="sotuv") # soch
px.line(df, x="oy", y="sotuv", color="kat") # rang = toifa Plotly Express (px) — yuqori daraja (Seaborn kabi — DataFrame bilan bir qator): px.line, px.bar, px.scatter, px.histogram, px.pie, px.box. data, x, y argumentlar (DataFrame ustunlari). Interaktiv grafik avtomatik (zoom, hover). Tez interaktiv grafik uchun — Seaborn'ning interaktiv versiyasi. Ko'p tahlil uchun yetarli.
2.3. Grafik turlari
Har xil grafik:
px.line(df, x, y) # chiziq (trend)
px.bar(df, x, y) # ustun (taqqoslash)
px.scatter(df, x, y) # soch (bog'lanish)
px.histogram(df, x) # gistogramma (taqsimot)
px.pie(df, values, names) # doiraviy (ulush)
px.box(df, x, y) # quti (kvartil) Plotly grafik turlari (Matplotlib/Seaborn kabi, lekin interaktiv): line (trend), bar (taqqoslash), scatter (bog'lanish), histogram (taqsimot), pie (ulush — doiraviy), box (kvartil). Har biri DataFrame bilan bir qator. Turi — savolga qarab (24.13 kabi). Interaktivlik — barchasida (zoom, hover). Har xil ko'rinish, bir API.
2.4. Rang va o'lcham
Ko'p o'zgaruvchi:
px.scatter(df, x="narx", y="sotuv", color="kat") # rang = toifa
px.scatter(df, x="narx", y="sotuv", size="daromad") # o'lcham = qiymat
px.scatter(df, x, y, color="kat", size="d", hover_data=["nom"])
px.line(df, x, y, color="kat", facet_col="hudud") # panel Ko'p o'zgaruvchi ko'rsatish: color="kat" (rang — toifa, Seaborn hue kabi), size="qiymat" (nuqta o'lchami — uchinchi son), hover_data=["nom"] (sichqoncha ustida qo'shimcha ma'lumot), facet_col/facet_row (panel — har toifa alohida grafik). Bu bir grafikda ko'p o'lcham (narx + sotuv + kategoriya + daromad). Interaktiv — hover bilan tafsilot.
2.5. Graph Objects (go)
Past daraja — to'liq nazorat:
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=y1, mode="lines", name="A"))
fig.add_trace(go.Bar(x=x, y=y2, name="B"))
# bir grafikda chiziq + ustun (aralash) Graph Objects (go) — past daraja (Matplotlib kabi — to'liq nazorat): go.Figure() + add_trace(go.Scatter(...)). Har trace (qatlam) — chiziq (go.Scatter), ustun (go.Bar), va h.k. Aralash grafik (chiziq + ustun), maxsus sozlash uchun. px — tez (oddiy), go — kuchli (murakkab). px natijasi ham go.Figure (birga sozlash). Murakkab holat uchun.
2.6. Grafikni bezash (update_layout)
Sarlavha, o'q, uslub:
fig.update_layout(
title="2024 sotuvi",
xaxis_title="Oy",
yaxis_title="Sotuv",
)
fig.update_traces(marker_size=10) # trace sozlash
fig.update_xaxes(range=[0, 100]) # o'q oraligi update_layout — grafik umumiy sozlamalari: title (sarlavha), xaxis_title/yaxis_title (o'q nomlari), rang, o'lcham, legend. update_traces (trace — nuqta o'lchami, rang), update_xaxes/update_yaxes (o'q — oraliq, format). Bu 24.13 (Matplotlib bezash) ga o'xshaydi, lekin Plotly uslubi. Bezash — interaktiv grafikda ham muhim (o'q nomlari, sarlavha).
2.7. Saqlash (HTML)
Interaktiv grafikni saqlash:
fig.write_html("grafik.html") # interaktiv HTML (brauzer)
fig.write_image("grafik.png") # statik rasm (kaleido kerak)
fig.to_json() # JSON (veb ilovaga)
fig.to_html(full_html=False) # HTML bo'lak (embed) Plotly saqlash: write_html (interaktiv HTML — brauzerda ochiladi, zoom/hover ishlaydi), write_image (statik PNG — kaleido kutubxonasi kerak), to_json (JSON — veb ilovaga, 20-qism API), to_html(full_html=False) (HTML bo'lak — veb sahifaga joylash). Interaktivlik faqat HTML/veb'da (PNG statik). Veb, dashboard uchun HTML.
2.8. Interaktiv vs statik
| Xususiyat | Statik (Matplotlib) | Interaktiv (Plotly) |
|---|---|---|
| Format | Rasm (PNG) | Veb (HTML) |
| Zoom/hover | Yo'q | Bor |
| Hisobot (PDF) | Yaxshi | Cheklangan |
| Dashboard/veb | Cheklangan | Yaxshi |
| Katta ma'lumot | Qiyin | Interaktiv |
Statik (Matplotlib/Seaborn) — rasm (PNG/PDF — hisobot, hujjat, chop etish); interaktiv (Plotly) — veb (HTML — dashboard, veb sahifa, katta ma'lumot kashf). Tanlov: hisobot/hujjat → statik; veb/dashboard/kashf → interaktiv. Ikkalasi ham foydali (maqsadga qarab). Interaktiv — zamonaviy veb taqdimoti; statik — an'anaviy hujjat. Vositani maqsadga qarab.
3. Tez ma'lumotnoma
import plotly.express as px
import plotly.graph_objects as go
# Plotly Express (yuqori daraja):
px.line(df, x="oy", y="sotuv", color="kat", title="Trend")
px.bar(df, x="kat", y="sotuv")
px.scatter(df, x="narx", y="sotuv", color="kat", size="daromad")
px.histogram(df, x="narx")
px.pie(df, values="sotuv", names="kat")
# Graph Objects (past daraja):
fig = go.Figure()
fig.add_trace(go.Scatter(x=x, y=y1, mode="lines", name="A"))
fig.add_trace(go.Bar(x=x, y=y2, name="B"))
# bezash:
fig.update_layout(title="...", xaxis_title="X", yaxis_title="Y")
# saqlash:
fig.write_html("grafik.html") # interaktiv
fig.to_json() # veb APIInteraktiv xulosasi
Plotly: interaktiv veb (zoom, hover) · px: yuqori (bir qator) · go: past (nazorat)
line/bar/scatter/histogram/pie · color/size/hover_data · update_layout
write_html (interaktiv) · statik(hisobot) vs interaktiv(dashboard)4. Batafsil misollar
Misollarda Plotly bilan sinaladi. Grafik tuzilishi (trace turi, soni, layout) tekshiriladi (rasm emas). Ehtiyot: fayl nomi
plotly.pybo'lmasin.
Misol 1 — Plotly Express (grafik turlari)
"""px: line (trend), bar (taqqoslash), scatter (bog'lanish) — DataFrame bilan interaktiv."""
import warnings
warnings.filterwarnings("ignore")
import pandas as pd
import plotly.express as px
def main() -> None:
df = pd.DataFrame({
"oy": [1, 2, 3, 4, 5],
"sotuv": [100, 120, 90, 150, 130],
"kategoriya": ["A", "B", "A", "B", "A"],
})
print("=== 1. px.line (chiziq — trend) ===")
fig = px.line(df, x="oy", y="sotuv", title="Oylik sotuv")
print(f" trace soni: {len(fig.data)}, turi: {fig.data[0].type}")
print("\n=== 2. px.bar (ustun — taqqoslash) ===")
fig2 = px.bar(df, x="kategoriya", y="sotuv")
print(f" turi: {fig2.data[0].type}")
print("\n=== 3. px.scatter (soch — bog'lanish) ===")
fig3 = px.scatter(df, x="oy", y="sotuv")
print(f" turi: {fig3.data[0].type}")
print("\n=== 4. Sarlavha (layout) ===")
print(f" line title: {fig.layout.title.text}")
print(" ⭐ px — DataFrame bilan interaktiv grafik (bir qator)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. px.line (chiziq — trend) ===
trace soni: 1, turi: scatter
=== 2. px.bar (ustun — taqqoslash) ===
turi: bar
=== 3. px.scatter (soch — bog'lanish) ===
turi: scatter
=== 4. Sarlavha (layout) ===
line title: Oylik sotuv
⭐ px — DataFrame bilan interaktiv grafik (bir qator)Nima ko'rsatdi: 2.1, 2.2, 2.3-bo'limlar.
Misol 2 — Rang va o'lcham (ko'p o'zgaruvchi)
"""color (rang = toifa), size (o'lcham = qiymat), facet (panel) — ko'p o'zgaruvchi."""
import warnings
warnings.filterwarnings("ignore")
import pandas as pd
import plotly.express as px
def main() -> None:
df = pd.DataFrame({
"narx": [100, 120, 80, 150, 90, 110],
"sotuv": [50, 40, 60, 30, 55, 45],
"kategoriya": ["A", "B", "A", "B", "A", "B"],
"daromad": [5000, 4800, 4800, 4500, 4950, 4950],
})
print("=== 1. color (rang = toifa) ===")
fig = px.scatter(df, x="narx", y="sotuv", color="kategoriya")
print(f" trace soni (har toifa): {len(fig.data)}")
print("\n=== 2. size (o'lcham = qiymat) ===")
fig2 = px.scatter(df, x="narx", y="sotuv", size="daromad")
print(f" trace: {len(fig2.data)}, o'lcham qo'llandi: {fig2.data[0].marker.size is not None}")
print("\n=== 3. color + hover_data ===")
fig3 = px.scatter(df, x="narx", y="sotuv", color="kategoriya", hover_data=["daromad"])
print(f" trace soni: {len(fig3.data)}")
print("\n=== 4. line + color (ko'p chiziq) ===")
df_line = pd.DataFrame({
"oy": [1, 2, 3, 1, 2, 3],
"sotuv": [100, 120, 90, 80, 100, 110],
"hudud": ["Toshkent", "Toshkent", "Toshkent", "Samarqand", "Samarqand", "Samarqand"],
})
fig4 = px.line(df_line, x="oy", y="sotuv", color="hudud")
print(f" chiziqlar (hudud): {len(fig4.data)}")
print(" ⭐ color/size/hover — bir grafikda ko'p o'lcham")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. color (rang = toifa) ===
trace soni (har toifa): 2
=== 2. size (o'lcham = qiymat) ===
trace: 1, o'lcham qo'llandi: True
=== 3. color + hover_data ===
trace soni: 2
=== 4. line + color (ko'p chiziq) ===
chiziqlar (hudud): 2
⭐ color/size/hover — bir grafikda ko'p o'lchamNima ko'rsatdi: 2.4-bo'lim.
Misol 3 — Graph Objects (aralash grafik)
"""go: Figure + add_trace (Scatter, Bar); aralash grafik; update_layout (bezash)."""
import warnings
warnings.filterwarnings("ignore")
import plotly.graph_objects as go
def main() -> None:
oylar = [1, 2, 3, 4, 5]
print("=== 1. go.Figure + Scatter (chiziq) ===")
fig = go.Figure()
fig.add_trace(go.Scatter(x=oylar, y=[100, 120, 90, 150, 130], mode="lines+markers", name="Sotuv"))
print(f" trace soni: {len(fig.data)}, turi: {fig.data[0].type}")
print("\n=== 2. + Bar (ustun) — aralash ===")
fig.add_trace(go.Bar(x=oylar, y=[20, 25, 18, 30, 27], name="Foyda"))
print(f" trace soni: {len(fig.data)}, turlar: {[t.type for t in fig.data]}")
print("\n=== 3. update_layout (bezash) ===")
fig.update_layout(title="Sotuv va foyda", xaxis_title="Oy", yaxis_title="Qiymat")
print(f" title: {fig.layout.title.text}")
print(f" x o'q: {fig.layout.xaxis.title.text}")
print("\n=== 4. Trace nomlari (legend) ===")
print(f" nomlar: {[t.name for t in fig.data]}")
print(" ⭐ go — to'liq nazorat (aralash grafik, trace)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. go.Figure + Scatter (chiziq) ===
trace soni: 1, turi: scatter
=== 2. + Bar (ustun) — aralash ===
trace soni: 2, turlar: ['scatter', 'bar']
=== 3. update_layout (bezash) ===
title: Sotuv va foyda
x o'q: Oy
=== 4. Trace nomlari (legend) ===
nomlar: ['Sotuv', 'Foyda']
⭐ go — to'liq nazorat (aralash grafik, trace)Nima ko'rsatdi: 2.5, 2.6-bo'limlar.
Misol 4 — Amaliy: interaktiv dashboard grafigi
Real misol: sotuv ma'lumoti — interaktiv grafik (color, hover), bezash, HTML/JSON'ga saqlash. Bu — interaktiv taqdimotning namunasi.
"""to'liq interaktiv: px.bar (color), update_layout, to_html/to_json (veb saqlash)."""
import warnings
warnings.filterwarnings("ignore")
import pandas as pd
import plotly.express as px
def main() -> None:
df = pd.DataFrame({
"mahsulot": ["Python", "Go", "Rust", "PHP", "Ruby"],
"sotuv": [50, 30, 20, 40, 25],
"kategoriya": ["kurs", "kurs", "kurs", "kitob", "kitob"],
})
print("=== 1. Interaktiv ustun grafik (color) ===")
fig = px.bar(df, x="mahsulot", y="sotuv", color="kategoriya", title="Mahsulot sotuvi")
print(f" trace soni (kategoriya): {len(fig.data)}")
print("\n=== 2. Bezash (update_layout) ===")
fig.update_layout(xaxis_title="Mahsulot", yaxis_title="Sotuv (dona)")
print(f" title: {fig.layout.title.text}")
print(f" y o'q: {fig.layout.yaxis.title.text}")
print("\n=== 3. HTML'ga (interaktiv, embed) ===")
html = fig.to_html(full_html=False)
print(f" HTML bo'lak yaratildi: {len(html) > 100}")
print(f" interaktiv (plotly.js): {'plotly' in html.lower()}")
print("\n=== 4. JSON'ga (veb API) ===")
j = fig.to_json()
print(f" JSON yaratildi: {len(j) > 100}")
print(f" jami sotuv: {df['sotuv'].sum()}")
print(" ⭐ px + update_layout + to_html/json — interaktiv dashboard")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Interaktiv ustun grafik (color) ===
trace soni (kategoriya): 2
=== 2. Bezash (update_layout) ===
title: Mahsulot sotuvi
y o'q: Sotuv (dona)
=== 3. HTML'ga (interaktiv, embed) ===
HTML bo'lak yaratildi: True
interaktiv (plotly.js): True
=== 4. JSON'ga (veb API) ===
JSON yaratildi: True
jami sotuv: 165
⭐ px + update_layout + to_html/json — interaktiv dashboardNima ko'rsatdi: 2.1–2.8-bo'limlar.
5. To'g'ri va noto'g'ri tushunishlar
| Noto'g'ri fikr | To'g'risi |
|---|---|
| "Plotly = Matplotlib" | Interaktiv (statik emas) |
"px va go bir xil" |
px yuqori, go past daraja |
| "Interaktiv doim yaxshi" | Hisobot — statik yaxshi |
| "Plotly PNG saqlaydi" | HTML (interaktiv); PNG — kaleido |
"color faqat chiroy" |
Toifa (ma'noli) |
| "Fayl nomi muhim emas" | plotly.py — paketni to'sadi |
| "Statik eski" | Hisobot uchun yaxshi |
| "Interaktivlik PNG'da" | HTML/veb'da |
6. Keng tarqalgan xatolar va yechimlari
1. Fayl nomi plotly.py
# plotly.py deb nomlash — import xato # ⚠️
# boshqa nom (masalan, tahlil.py) # ✅2. Interaktivlikni PNG'dan kutish
fig.write_image("f.png") # statik (interaktiv emas) # ⚠️
fig.write_html("f.html") # interaktiv # ✅3. px va go aralashtirish
px.line(df, ...) # DataFrame bilan
go.Figure() + add_trace # to'liq nazorat # farqni bil4. Bezash unutish
px.bar(df, x, y) # o'q nomi avtomatik (ustun nomi)
fig.update_layout(title=...) # ✅ sarlavha qo'sh5. write_image kutubxonasi yo'q
fig.write_image("f.png") # kaleido kerak # ⚠️
# pip install kaleido yoki write_html # ✅6. Katta ma'lumot (HTML og'ir)
# million nuqta — HTML fayl katta, sekin # ⚠️
# namuna (sample) yoki agregatsiya # ✅7. show() skriptda (brauzer ochiladi)
fig.show() # brauzer ochiladi (skriptda noqulay) # ba'zan
fig.write_html(...) # faylga (nazorat) # ✅7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 24.13-dars (o'tilgan): Matplotlib — statik grafik
- 24.14-dars (o'tilgan): Seaborn — statistik grafik
- 24.18-dars: Amaliy loyiha — dashboard
- 20-qism (o'tilgan): FastAPI — grafik API (JSON)
- 26-qism: Avtomatlashtirish — hisobot grafigi
8. Eng yaxshi amaliyotlar
Interaktiv (veb/dashboard) — Plotly.
Tez grafik —
px(yuqori daraja).Murakkab/aralash —
go.Ko'p o'lcham —
color/size/hover_data.Beza (
update_layout— sarlavha, o'q).Veb —
write_html/to_json.Hisobot — statik (Matplotlib); dashboard — Plotly.
Fayl nomi
plotly.pybo'lmasin.
9. Amaliy topshiriq
Vazifa 1: Bashorat qiling
1. # Plotly nima?
2. # Plotly vs Matplotlib?
3. # px nima?
4. # go nima?
5. # px vs go?
6. # color nima?
7. # size nima?
8. # hover_data nima?
9. # update_layout nima?
10. # write_html nima?
11. # interaktivlik qayerda?
12. # statik vs interaktiv qachon?Javoblar
- Interaktiv vizualizatsiya kutubxonasi
- Plotly interaktiv (veb), Matplotlib statik
- Plotly Express (yuqori daraja)
- Graph Objects (past daraja)
- px tez (DataFrame), go to'liq nazorat
- Rang = toifa
- Nuqta o'lchami = qiymat
- Sichqoncha ustida qo'shimcha ma'lumot
- Grafik sozlamalari (sarlavha, o'q)
- Interaktiv HTML'ga saqlash
- HTML/veb'da (PNG statik)
- Hisobot — statik, veb/dashboard — interaktiv
Vazifa 2: Xatolarni tuzating
1. # fayl nomi plotly.py # boshqa nom
2. fig.write_image("f.png") # interaktiv kutildi # write_html
3. px.line(df) + go.add_trace # bittasini tanla
4. px.bar(df, x, y) # sarlavha-chi? # update_layout
5. # million nuqta HTML # sampleJavoblar
1. # tahlil.py (plotly.py emas)
2. fig.write_html("f.html")
3. px.line(...) yoki go.Figure() (bittasi)
4. fig.update_layout(title=...)
5. df.sample(1000) yoki agregatsiyaVazifa 3: px
Grafik:
px.linepx.barpx.scatter- Sarlavha
Vazifa 4: Ko'p o'lcham
Grafik:
colorsizehover_dataline+ color
Vazifa 5: go
To'liq:
go.Figureadd_trace(Scatter)- Aralash (Bar)
update_layout
Vazifa 6: Dashboard
Interaktiv:
px(color)- Bezash
to_htmlto_json
Vazifa 7: O'ylash
Statik grafik (Matplotlib — rasm) va interaktiv grafik (Plotly — veb) har xil maqsadga: statik — hisobot, hujjat, chop etish; interaktiv — dashboard, veb, katta ma'lumot kashf. Nima uchun "vositani maqsadga qarab tanlash" (statik vs interaktiv) muhim, va nega interaktivlik har doim yaxshi emas — qachan sodda statik grafik interaktivdan afzal?
Javob
Qisqa javob: Statik (Matplotlib) va interaktiv (Plotly) — har xil maqsadga: statik — hisobot, hujjat, chop etish, PDF (bir marta ko'rish, harakat kerak emas); interaktiv — dashboard, veb, katta ma'lumot (foydalanuvchi kashf qiladi — zoom, filtr). "Maqsadga qarab tanla" muhim, chunki har vosita o'z maqsadiga optimali. Interaktivlik har doim yaxshi emas: hisobot/hujjat uchun statik afzal (PDF'da interaktiv ishlamaydi; bir grafik — bir xabar, chalg'itmaydi), oddiy ma'lumot uchun interaktivlik ortiqcha (murakkablik, og'ir HTML, keraksiz), chop etish uchun statik (interaktiv qog'ozda ishlamaydi). Qoida: oddiy, bir marta ko'rish → statik; kashf, ko'p ma'lumot, veb → interaktiv. "Soddalik — standart, murakkablik — kerak bo'lganda".
1. Har xil maqsad
| Statik (Matplotlib) | Interaktiv (Plotly) |
|---|---|
| Hisobot, hujjat, PDF | Dashboard, veb |
| Bir marta ko'rish | Kashf (zoom, filtr) |
| Chop etish | Ekran |
| Oddiy xabar | Katta ma'lumot |
2. Nega interaktivlik har doim emas
- Hisobot/PDF: interaktiv ishlamaydi (qog'oz, PDF statik)
- Oddiy ma'lumot: interaktivlik ortiqcha (murakkablik, og'ir)
- Bir xabar: statik aniqroq (chalg'itmaydi)
3. Qachon statik afzal
- Hisobot, hujjat, taqdimot slaydi
- Bir marta ko'rish (harakat kerak emas)
- Chop etish (qog'oz)
- Oddiy, aniq xabar
4. Qachon interaktiv afzal
- Dashboard (foydalanuvchi kashf)
- Katta ma'lumot (zoom, filtr)
- Veb sahifa
- Ko'p o'lcham (hover tafsilot)
5. Muhandislik saboqlari
- Vosita maqsadga qarab (statik/interaktiv)
- Interaktivlik har doim yaxshi emas
- Oddiy/hisobot → statik
- Kashf/veb → interaktiv
6. Xulosa
- Statik (hujjat) va interaktiv (veb) — har xil maqsad
- Maqsadga qarab tanla
- Interaktivlik ba'zan ortiqcha
- Soddalik standart, murakkablik kerakda
Nimani mustahkamlaydi: 2.1–2.8-bo'limlar.
Xulosa
Bu darsda Plotly bilan interaktiv vizualizatsiyani o'rgandik.
Eng muhim uch fikr:
Plotly — interaktiv veb grafik. Plotly — interaktiv vizualizatsiya kutubxonasi: grafik veb (HTML + JavaScript) da, sichqoncha bilan boshqariladi (zoom, hover — aniq qiymat, filtr). Matplotlib/Seaborn'dan farq: interaktiv (statik emas), veb'ga mos. Plotly Express (
px) — yuqori daraja (Seaborn kabi — DataFrame bilan bir qator):px.line,px.bar,px.scatter,px.histogram,px.pie,px.box. Grafik turi savolga qarab (24.13 kabi), lekin interaktiv.fig.show()(brauzer),write_html(fayl). Ehtiyot: fayl nomiplotly.pybo'lmasin (paketni to'sadi).Ko'p o'zgaruvchi va Graph Objects. Ko'p o'lcham:
color="kat"(rang — toifa, Seabornhuekabi),size="qiymat"(nuqta o'lchami),hover_data=["nom"](sichqoncha ustida tafsilot),facet_col(panel). Graph Objects (go) — past daraja (to'liq nazorat):go.Figure()+add_trace(go.Scatter(...))/go.Bar(...)(aralash grafik — chiziq + ustun).pxtez (oddiy),gokuchli (murakkab).update_layout— bezash (title,xaxis_title,yaxis_title). Saqlash:write_html(interaktiv),write_image(PNG —kaleido),to_json(veb API).Statik vs interaktiv — maqsadga qarab. Statik (Matplotlib/Seaborn) — rasm (PNG/PDF — hisobot, hujjat, chop etish, bir marta ko'rish); interaktiv (Plotly) — veb (HTML — dashboard, veb sahifa, katta ma'lumot kashf — zoom, filtr, hover). Interaktivlik har doim yaxshi emas: hisobot/PDF uchun statik afzal (interaktiv ishlamaydi), oddiy ma'lumot uchun interaktivlik ortiqcha (murakkablik). Qoida: oddiy/hisobot/chop → statik; kashf/veb/katta ma'lumot → interaktiv. "Vositani maqsadga qarab tanla" — soddalik standart, murakkablik kerakda. Interaktiv — zamonaviy veb taqdimoti.
Keyingi darsda tavsifiy statistika ni o'rganamiz: o'rtacha, mediana, standart chetlanish, kvartil — ma'lumotni sonlar bilan xulosalash 24.16-bob, taqsimot va tarqoqlikni tushunish.
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!