Python Academy · บทเรียน

กราฟเส้น แท่ง และกระจาย

สร้างกราฟประเภทที่ใช้บ่อย

บทเรียน 2 จาก 413 ขั้นตอน

กราฟเส้น แท่ง และกระจาย เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

แผนภูมิหลักสามประเภท

เรื่องราวของข้อมูลส่วนใหญ่ถ่ายทอดด้วยแผนภูมิสามประเภท:

  • แผนภาพเส้น ใช้แสดงแนวโน้มตามแกนที่มีลำดับ เช่น เวลา
  • แผนภูมิแท่ง ใช้เปรียบเทียบหมวดหมู่
  • แผนภาพกระจาย ใช้แสดงความสัมพันธ์ระหว่างตัวแปรตัวเลขสองตัว

แต่ละประเภทสอดคล้องกับวิธีการของ Matplotlib หนึ่งวิธีบนพื้นที่พล็อต

แผนภาพเส้น

แผนภาพเส้นเชื่อมจุดตามลำดับ ใน Matplotlib ใช้ ax.plot(x, y) ใช้เมื่อแกน x มีลำดับที่มีความหมาย เช่น วันต่าง ๆ หรือค่าที่วัดตามเวลา

ข้อมูลเบื้องหลังแผนภาพเส้นเป็นเพียงลำดับข้อมูลสองชุดที่ขนานกัน

months = [1, 2, 3, 4, 5]
sales = [120, 150, 130, 170, 200]
for m, s in zip(months, sales):
    print('Month', m, '->', s)
print('Trend:', 'up' if sales[-1] > sales[0] else 'down')

แผนภูมิแท่ง

แผนภูมิแท่งใช้เปรียบเทียบหมวดหมู่ที่แยกจากกัน การเรียกใช้คือ ax.bar(categories, values) แท่งจะเริ่มจากศูนย์ จึงสามารถเปรียบเทียบความสูงกันได้โดยตรง

ใช้แท่งเมื่อ ตำแหน่งบนแกน x เป็นป้ายกำกับ ไม่ใช่มาตราส่วนต่อเนื่อง

fruits = ['apple', 'banana', 'cherry']
counts = [30, 45, 15]
for f, c in zip(fruits, counts):
    bar = '#' * (c // 5)
    print(f.ljust(8), bar, c)

แท่งแนวนอน

เมื่อป้ายกำกับหมวดหมู่มีความยาวมาก แท่งแนวนอนจะอ่านได้ง่ายกว่า Matplotlib มี ax.barh(categories, values) ให้ใช้

ตรรกะเหมือนกันทุกประการ มีเพียงแนววางที่เปลี่ยนไป

แผนภาพกระจาย

แผนภาพกระจายจะวาดเครื่องหมายหนึ่งจุดต่อข้อมูลหนึ่งจุดด้วย ax.scatter(x, y) ช่วยให้เห็นความสัมพันธ์ กลุ่มข้อมูล และค่าผิดปกติระหว่างตัวแปรตัวเลขสองตัว

ต่างจากแผนภาพเส้นตรงที่จุดต่าง ๆ จะไม่ถูกเชื่อมเข้าด้วยกัน

heights = [150, 160, 170, 180, 190]
weights = [50, 60, 68, 78, 90]
pairs = list(zip(heights, weights))
print('Points:', pairs)
rising = all(weights[i] < weights[i+1] for i in range(len(weights)-1))
print('Positive trend:', rising)

การเลือกแผนภูมิที่เหมาะสม

เลือกตามคำถามที่ต้องการตอบ:

  • ค่าหนึ่งเปลี่ยนแปลงตามเวลาอย่างไร แผนภาพเส้น
  • หมวดหมู่ใดมีค่ามากที่สุด แผนภูมิแท่ง
  • ตัวแปรสองตัวมีความสัมพันธ์กันหรือไม่ แผนภาพกระจาย

การเลือกผิดอาจทำให้ผู้อ่านเข้าใจผิดได้ เช่น การใช้แผนภาพเส้นกับหมวดหมู่ที่ไม่มีลำดับ

ข้อมูลหลายชุด

คุณสามารถเรียกใช้ ax.plot() หลายครั้งบนพื้นที่พล็อตเดียวกันเพื่อซ้อนทับเส้นหลายเส้น การเรียกใช้แต่ละครั้งจะเพิ่มชุดข้อมูลอีกหนึ่งชุด จากนั้นใช้คำอธิบายแผนภูมิเพื่อแยกความแตกต่าง

แนวคิดการซ้อนทับแบบเดียวกันใช้ได้กับแผนภาพกระจายและแผนภูมิแบบผสม

series_a = [1, 2, 3, 4]
series_b = [4, 3, 2, 1]
for i in range(len(series_a)):
    print('x', i, 'a', series_a[i], 'b', series_b[i])

เครื่องหมายและรูปแบบเส้น

แผนภาพเส้นรองรับสตริงรูปแบบ เช่น ax.plot(x, y, 'o--') จะวาดเครื่องหมายวงกลมที่เชื่อมด้วยเส้นประ

  • o เครื่องหมายวงกลม
  • -- เส้นประ
  • r สีแดง

ทางลัดเหล่านี้ทำให้ปรับแผนภาพเพื่อสำรวจข้อมูลได้อย่างรวดเร็ว

แท่งแบบจัดกลุ่ม

หากต้องการเปรียบเทียบค่าสองค่าต่อหมวดหมู่ ให้เลื่อนตำแหน่งของแท่ง โดยเลื่อนกลุ่มหนึ่งไปเล็กน้อยเพื่อให้แท่งวางอยู่ข้างกัน

ตำแหน่งเหล่านี้คำนวณได้ด้วยการคำนวณเลขคณิตอย่างง่ายบนดัชนี

categories = ['Q1', 'Q2', 'Q3']
width = 0.4
for i, cat in enumerate(categories):
    left_pos = i - width / 2
    right_pos = i + width / 2
    print(cat, 'group A at', left_pos, 'group B at', right_pos)

แผนภูมิฟอง

แผนภาพกระจายสามารถแสดงตัวแปรที่สามด้วยขนาดของเครื่องหมาย: ax.scatter(x, y, s=sizes) ฟองที่ใหญ่กว่าหมายถึงค่าที่มากกว่า วิธีนี้บรรจุข้อมูลสามมิติไว้ในแผนภูมิเดียว

กำหนดขนาดให้เหมาะสม เพื่อไม่ให้ฟองซ้อนทับกันจนกลายเป็นก้อนเดียว

การหลีกเลี่ยงแผนภูมิที่ทำให้เข้าใจผิด

ประเภทของแผนภูมิมีความหมายในตัวเอง ดังนั้นการเลือกผิดอาจทำให้เข้าใจผิดได้ เส้นที่ลากผ่านหมวดหมู่ซึ่งไม่มีลำดับจะสื่อว่ามีแนวโน้มทั้งที่ไม่มีอยู่จริง แท่งที่ไม่ได้เริ่มจากศูนย์จะทำให้ความแตกต่างดูมากเกินจริง

ถามตัวเองเสมอว่าการแสดงข้อมูลด้วยภาพสอดคล้องกับโครงสร้างข้อมูลของคุณหรือไม่

ตรวจสอบความเข้าใจ

จับคู่คำถามกับแผนภูมิที่เหมาะสม

ทบทวน

ตอนนี้คุณรู้จักการเรียกใช้แผนภูมิหลักสามแบบแล้ว:

  • ax.plot(x, y) ใช้แสดงแนวโน้มบนแกนที่มีลำดับ
  • ax.bar(cats, vals) ใช้เปรียบเทียบหมวดหมู่
  • ax.scatter(x, y) ใช้แสดงความสัมพันธ์ โดยใช้ s= สำหรับฟอง

ซ้อนทับชุดข้อมูลหลายชุดบนพื้นที่พล็อตเดียวกัน และเลือกประเภทให้ตรงกับคำถามของคุณ

เริ่มต้นได้ฟรี

เรียนรู้ Python ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
76
บทเรียน
320

คำถามที่พบบ่อย

บทเรียน “กราฟเส้น แท่ง และกระจาย” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “กราฟเส้น แท่ง และกระจาย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “กราฟเส้น แท่ง และกระจาย”

สร้างกราฟประเภทที่ใช้บ่อย คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “กราฟเส้น แท่ง และกระจาย” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม

ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. รูปและแกน
  2. กราฟเส้น แท่ง และกระจาย
  3. การปรับแต่งกราฟ
  4. กราฟย่อยและการจัดวาง
← กลับไปที่ Python Academy