Module 11 — ทบทวน (Review)

Basic Data Visualization with Matplotlib — แบบฝึกทบทวน

ทบทวน Module 11 📝

  • Multiple Choice — เลือกคำตอบที่ถูก แล้วกดถัดไปเพื่อดูเฉลย
  • ทำนายผล · หา Bug
  • เติมคำในช่องว่าง — ลองพิมพ์ใน Live Code แล้วรัน (มี matplotlib จริง)

. . .

Note

ครอบคลุม: pyplot & alias · line plot · ตกแต่งกราฟ · bar/hist/pie · heatmap · subplot ทบทวนเนื้อหาเต็มได้ที่ Module 11 👈

Multiple Choice 🔘

เลือกคำตอบที่ถูกต้อง — เฉลยจะปรากฏเมื่อกดถัดไป

คำถาม #1

รูปแบบ import ที่นิยมสำหรับ pyplot คือข้อใด?

A. import matplotlib.pyplot as plt
B. import plt
C. from plt import *

Tip

ตอบ: A — ตั้ง alias plt แล้วเรียก plt.plot(), plt.show() ได้กระชับ

คำถาม #2

ฟังก์ชันใดใช้แสดงกราฟออกมาให้เห็น?

A. .plot()
B. .show()
C. .draw()

Tip

ตอบ: B.plot() สร้างกราฟ แล้ว .show() แสดงออกมา (เรียกท้ายสุด)

คำถาม #3: ชวนคิด

ถ้าส่ง List รายการเดียว ให้ .plot() — แกน x แสดงอะไร?

A. ค่าของข้อมูล
B. ลำดับ (index) ของข้อมูล เริ่มจาก 0
C. ค่าติดลบ

Tip

ตอบ: B — แกน x = ลำดับ 0,1,2,… · แกน y = ค่าของข้อมูล

คำถาม #4

กราฟชนิดใดเหมาะกับข้อมูล Categorical เช่น ยอดขายแต่ละเดือน?

A. .plot() (line)
B. .bar()
C. .imshow()

Tip

ตอบ: BBar plot ส่ง labels (แกนนอน) + ค่า (ความสูงแท่ง)

คำถาม #5

.hist() ใช้แสดงอะไร?

A. สัดส่วน
B. การกระจายตัวของข้อมูลในแต่ละช่วง (bin)
C. ความสัมพันธ์ x-y

Tip

ตอบ: B — Histogram แสดงความถี่ในแต่ละช่วง กำหนดจำนวน bin ได้ด้วยพารามิเตอร์ที่ 2

คำถาม #6: ชวนคิด

.xlabel(), .ylabel(), .title() ต้องเรียกตอนไหน?

A. ก่อน .show()
B. หลัง .show()
C. ตอนไหนก็ได้

Important

ตอบ: A — ต้องตั้งค่าคำอธิบายก่อน .show() ไม่งั้นจะไม่ปรากฏบนกราฟที่แสดงไปแล้ว

คำถาม #7

.pie() เหมาะกับการแสดงข้อมูลแบบใด?

A. สัดส่วน ของแต่ละส่วนเทียบกับทั้งหมด
B. การเปลี่ยนแปลงตามเวลา
C. ข้อมูล 2 มิติ

Tip

ตอบ: A — Pie chart แสดงสัดส่วน · เพิ่ม labels, autopct='%.2f%%', explode ได้

คำถาม #8: ชวนคิด

plt.subplot(2, 3, 1) หมายความว่าอย่างไร?

A. กราฟ 2×3 = 6 ช่อง กำลังวาดที่ช่องที่ 1
B. กราฟขนาด 2×3 นิ้ว
C. วาด 1 กราฟ 2 ครั้ง

Tip

ตอบ: Asubplot(row, col, location) — นับช่องจากซ้ายไปขวา บนลงล่าง

ทำนายผล 🔮

โค้ดจะพิมพ์/วาดอะไร? — ทายก่อน แล้วกดถัดไปดูเฉลย

ทำนายผล #9

u = 3; a = 10
times = range(0, 5)
distances = [u*t + 0.5*a*t**2 for t in times]
print(distances)

Tip

ผลลัพธ์: [0.0, 8.0, 26.0, 54.0, 92.0] \(s = ut + \tfrac12 a t^2\) เมื่อ t = 0,1,2,3,4 (เช่น t=2 → 6 + 20 = 26.0)

ทำนายผล #10: ชวนคิด

format string 'r-s' ใน plt.plot(x, y, 'r-s') หมายถึงอะไร?

A. สีแดง + เส้นทึบ + จุดสี่เหลี่ยม
B. หมุน + ปรับ + บันทึก
C. red-small

Important

ตอบ: A'xyz': r=สี(red) · -=เส้นทึบ · s=จุดสี่เหลี่ยม (square)

หา Bug 🐞

โค้ดผิดตรงไหน — ทำไม

หา Bug #11

import matplotlib.pyplot as plt
data = [3, 1, 4, 1, 5]
plt.plot(data)
# ...ไม่เห็นกราฟเลย

ทำไมไม่เห็นกราฟ?

Important

ผิด: ลืมเรียก plt.show() → กราฟไม่ถูกแสดง แก้: เพิ่ม plt.show() ต่อท้าย

หา Bug #12: ชวนคิด

plt.plot(x, y)
plt.show()
plt.title('My Chart')     # ตั้ง title

title ไม่ขึ้นบนกราฟ — ผิดตรงไหน?

Important

ผิด: เรียก .title() หลัง .show() แล้ว → กราฟถูกแสดงไปก่อนแล้ว แก้: ย้าย plt.title('My Chart') ขึ้นไปก่อน plt.show()

เติมคำในช่องว่าง ✏️

เติมโค้ดในช่อง ____ แล้วกด Run (มี matplotlib จริง)

เติมคำ #13

เติมโค้ด import แบบตั้ง alias เป็น plt แล้วพล็อตกราฟ

import matplotlib.pyplot as plt

data = [6, 0, 2, 1, -5, 4, 3, 8]
plt.plot(data)
plt.show()

เติมคำ #14

เติมป้ายชื่อแกนและ title ให้ครบ (แกน x: Time(s), y: Distance(m), title: Movement)

plt.plot(t, s)
plt.xlabel('Time(s)')
plt.ylabel('Distance(m)')
plt.title('Movement')
plt.show()

เติมคำ #15: ชวนคิด

เติมฟังก์ชันให้วาด bar plot ของยอดขายรายเดือน

plt.bar(labels, data)
plt.show()

Note

ทบทวน: Bar plot (Module 11)

Engineering Application 🔧

พล็อตข้อมูลการทดลอง/วัดจริง (มี matplotlib จริง)

Engineering #16: อุณหภูมิรายชั่วโมง

เติมป้ายแกนให้กราฟอุณหภูมิเทียบเวลา

plt.plot(hours, temp)
plt.xlabel('Hour')
plt.ylabel('Temp (C)')
plt.show()

Engineering #17: เปรียบเทียบกำลังวัสดุ

เติมฟังก์ชันวาด bar chart กำลังของวัสดุ (MPa)

plt.bar(mats, strength)
plt.show()

Engineering #18: กราฟ Stress–Strain

เติม title ให้กราฟความสัมพันธ์ความเค้น–ความเครียด

plt.plot(strain, stress)
plt.title('Stress-Strain Curve')
plt.show()

ท้าทาย 🔥

สร้างข้อมูลเอง + วาดหลายเส้น + คำอธิบาย

ท้าทาย #19: เทียบ \(x^2\) กับ \(2x\)

สร้าง 2 เส้นด้วย list comprehension แล้วเติมฟังก์ชันแสดง คำอธิบาย (legend)

plt.plot(x, y1, label='x^2')
plt.plot(x, y2, label='2x')
plt.legend()
plt.show()

จบการทบทวน 🎉

ทบทวนเนื้อหาเต็มได้ที่ Module 11 · ไปต่อ Module 12a