0Pricing
Python Academy · บทเรียน

กราฟย่อยและการจัดวาง

รวมกราฟหลายรายการ

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

เหตุผลที่ต้องใช้หลายแผนภูมิ

บ่อยครั้งแผนภูมิเดียวไม่เพียงพอ คุณอาจต้องการเปรียบเทียบมุมมองหลายแบบไว้ข้างกัน หรือแบ่งแผนภาพที่มีข้อมูลหนาแน่นออกเป็นแผงย่อย ๆ Matplotlib เรียกการจัดวางพื้นที่พล็อตหลายแห่งภายในรูปภาพเดียวว่าเป็นการจัดพื้นที่พล็อตหลายแห่ง

เครื่องมือหลักคือ plt.subplots(rows, cols)

ตารางพื้นที่พล็อต

fig, axes = plt.subplots(2, 3) สร้างรูปภาพที่มีตารางขนาด 2 คูณ 3 ทำให้ได้พื้นที่พล็อตหกแห่ง ผลลัพธ์ axes เป็นอาร์เรย์สองมิติที่ใช้ดัชนีได้เหมือน axes[0][1]

จำนวนแผงทั้งหมดคำนวณได้จากจำนวนแถวคูณจำนวนคอลัมน์

rows, cols = 2, 3
total = rows * cols
print('Grid', rows, 'x', cols, '=', total, 'axes')
for r in range(rows):
    for c in range(cols):
        print('panel at', (r, c))

การใช้ดัชนีกับอาร์เรย์พื้นที่พล็อต

เมื่อมีแถวเดียว axes จะเป็นข้อมูลมิติเดียว ให้ใช้ axes[0], axes[1] เมื่อเป็นตารางเต็มรูปแบบ จะเป็นข้อมูลสองมิติ: axes[row][col]

สำหรับแผนภาพย่อยเพียงหนึ่งแผนภาพ ไม่จำเป็นต้องใช้ดัชนีเลย

การวนซ้ำผ่านแผง

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

datasets = ['A', 'B', 'C', 'D']
# imagine axes flattened to a list of 4
for i, name in enumerate(datasets):
    print('Plot dataset', name, 'on flat axes index', i)

แกนร่วม

เมื่อแผงต่าง ๆ ใช้มาตราส่วนเดียวกัน ให้ส่ง sharex=True หรือ sharey=True จากนั้นแผนภาพย่อยจะใช้ช่วงร่วมกัน ทำให้การเปรียบเทียบยุติธรรมและตัดป้ายกำกับขีดที่ซ้ำซ้อนออก

วิธีนี้เหมาะอย่างยิ่งสำหรับอนุกรมเวลาที่วางซ้อนกัน

ขนาดรูปภาพสำหรับตาราง

ตารางต้องใช้พื้นที่มากกว่าแผนภาพเดียว กำหนด figsize=(width, height) เป็นหน่วยนิ้วเมื่อเรียกใช้แผนภาพย่อย หลักคร่าว ๆ คือปรับขนาดตามจำนวนคอลัมน์และแถว

cols, rows = 3, 2
per_panel_w, per_panel_h = 3, 2.5
print('Suggested figsize:', (cols * per_panel_w, rows * per_panel_h))

ระยะห่างระหว่างแผง

แผงต่าง ๆ อาจเบียดกันได้ fig.tight_layout() จะแก้ไขกรณีส่วนใหญ่โดยอัตโนมัติ หากต้องการควบคุมอย่างละเอียดขึ้น ให้ใช้ fig.subplots_adjust(wspace=0.4, hspace=0.4) เพื่อกำหนดช่องว่างแนวนอนและแนวตั้ง

ค่าที่มากขึ้นหมายถึงมีพื้นที่ระหว่างแผนภาพย่อยมากขึ้น

เค้าโครงไม่สม่ำเสมอด้วย GridSpec

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

คุณกำหนดตารางก่อน แล้วใช้การตัดส่วนเหมือนกับอาร์เรย์เพื่อวางพื้นที่พล็อตแต่ละแห่ง

การวางแผนส่วนที่ครอบคลุม

ให้คิดว่าส่วนตัดของ GridSpec เป็นช่วงต่าง ๆ แผนภูมิด้านบนที่ครอบคลุมทุกคอลัมน์คือ gs[0, :] ส่วนแผนภูมิด้านล่างซ้ายคือ gs[1, 0] การวางแผนส่วนตัดลงบนกระดาษก่อนจะช่วยหลีกเลี่ยงความสับสน

layout = {
    'header': '[0, :]   (full width)',
    'left':   '[1, 0]   (bottom left)',
    'right':  '[1, 1]   (bottom right)',
}
for name, slot in layout.items():
    print(name.ljust(7), slot)

หนึ่งรูปภาพ หนึ่งเรื่องราว

รูปภาพหลายแผงก็ควรเล่าเรื่องเดียวที่สอดคล้องกัน ใช้ fig.suptitle() ร่วม สีที่สม่ำเสมอ และมาตราส่วนร่วมกัน เพื่อให้แผงต่าง ๆ อ่านเป็นหน่วยเดียว แทนที่จะดูเหมือนภาพปะติดปะต่อแบบสุ่ม

การปรับแต่งแต่ละแผง

เนื่องจากแต่ละเซลล์เป็นพื้นที่พล็อตของตนเอง คุณจึงปรับแต่งแต่ละแห่งได้อย่างอิสระ axes[0][0].set_title('Sales') จะกำหนดชื่อเฉพาะแผงด้านซ้ายบน ขณะที่ axes[1][1].set_ylabel('Cost') จะกำหนดป้ายกำกับเฉพาะแผงด้านขวาล่าง

ความเป็นอิสระนี้เองคือเหตุผลที่รูปแบบเชิงวัตถุเหมาะอย่างยิ่งกับตาราง

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

ทดสอบความเข้าใจเกี่ยวกับเค้าโครงหลายแผง

ทบทวน

ตอนนี้คุณสามารถรวมแผนภูมิหลายแบบเข้าด้วยกันได้แล้ว:

  • plt.subplots(rows, cols) สร้างตารางพื้นที่พล็อต
  • ใช้ดัชนีด้วย axes[row][col] หรือคลี่ข้อมูลให้เป็นมิติเดียวแล้ววนซ้ำ
  • sharex/sharey จัดแนวมาตราส่วน ส่วน figsize กำหนดขนาดตาราง
  • tight_layout และ subplots_adjust จัดการระยะห่าง
  • GridSpec ช่วยให้สร้างแผงที่ครอบคลุมหลายเซลล์ได้

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

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

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

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

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

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

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

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

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

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

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

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

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